在阅读了与此相关的多个线程后,我只能得出结论,我一定是在错误的时间设置了我的委托,但我不知道在哪里分配委托来解决这个问题。
我在选择主表行时替换详细视图控制器,如下所示:
AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];
CustomerDetailViewController *newvc = [[CustomerDetailViewController alloc] initWithNibName:@"CustomerDetailViewController" bundle:nil withCustomer:[custData objectForKey:@"name"]];
[app.detailNavigationController setViewControllers:[NSArray arrayWithObjects:newvc, nil]];
这将设置视图控制器。在 CustomerDetailViewController 中,我像这样分配委托:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];
app.splitViewController.delegate = self;
}
return self;
}
如果在纵向模式下选择表格行,会发生什么情况,我没有出现 barbuttonitem。但是,如果我旋转到横向然后再回到纵向,barbuttonitem 确实会出现。
我想在 initWithNibName 中设置我的代表可以解决这个问题,但显然不是。
谁能告诉我在哪里/何时分配代表?