0

我什至不确定我是否做对了,但这就是我正在尝试做的。我有一个包含表格视图的情节提要 - 以编程方式填充 - 所有这些都有效。我在故事板中还有另一个 ViewController,它本质上将显示在表格视图中选择的任何内容的详细信息。故事板中的表格视图和详细视图之间没有序列 - 应该有吗?- 我创建了一个类来处理这个细节视图。

所以我在 detailViewController.h 中有这个

#import <UIKit/UIKit.h>

@class Profile;

@interface MedStaffDetailViewController : UIViewController

@property (weak, nonatomic) IBOutlet UIImageView *profileImage;

@property (weak, nonatomic) IBOutlet UIBarButtonItem *profileMobile;

@property (weak, nonatomic) IBOutlet UIBarButtonItem *profilePhone;

@property (weak, nonatomic) IBOutlet UIBarButtonItem *profileEmail;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil detail:(Profile *)profile title:(NSString *)title;


@end

这在其实施中:

#import "MedStaffDetailViewController.h"
#import "MedStaffViewController.h"
#import "Profile.h"

@interface MedStaffDetailViewController ()

@end

@implementation MedStaffDetailViewController
@synthesize profileEmail, profileImage, profileMobile, profilePhone;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil detail:(Profile *)profile title:(NSString *)title
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        self.title = title;

    }
    return self;
}
@end

我只是想处理表格视图中一行的选择,以使用适当的数据显示此详细视图 - 当我只是在做一个主/视图类型的应用程序时,我有这个工作 - 但现在我使用的是故事板,所以我可以学。

我在详细视图的身份检查器中将类设置为 MedStaffDetailViewController,并在表视图控制器中具有以下内容:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Navigation logic may go here. Create and push another view controller.
    /*
     <#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil];
     // ...
     // Pass the selected object to the new view controller.
     [self.navigationController pushViewController:detailViewController animated:YES];
     */

    _showProfile = [_profileArray objectAtIndex:indexPath.row];
    NSLog(@"Selected: %@", [_showProfile lastName]);

    self.detailViewController = [[MedStaffDetailViewController alloc] initWithNibName:@"MedStaffDetailViewController" bundle:nil detail:_showProfile title:@"This is the title"];

    [self.navigationController pushViewController:self.detailViewController animated:YES];


}

所有这些都构建得很好,但是在运行时会在这个问题的标题中抛出错误。应该 - 或者我 - 需要在故事板中创建一个序列吗?我将如何获取此详细信息视图以显示何时选择了一行。

4

1 回答 1

2

您可以使用:

UIStoryboard*  sb = [UIStoryboard storyboardWithName:@"mystoryboard" bundle:nil];
UIViewController* vc = [sb instantiateViewControllerWithIdentifier:@"MedStaffDetailViewController"];
于 2012-10-16T03:23:50.357 回答