我有一个动态单元格 UITableViewController
,我想在有人点击单元格时推送特定的 View Controller 。所以我正在尝试使用预制方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
但是当我进入模拟器并点击一个单元格时,这就是我得到的:
"NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle [...] with name 'AffichageVotesQuestionDuMomentViewController'.
在方法中,我有这个:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// Navigation logic may go here. Create and push another view controller.
AffichageVotesQuestionDuMomentViewController *detailViewController = [[AffichageVotesQuestionDuMomentViewController alloc] initWithNibName:@"AffichageVotesQuestionDuMomentViewController" bundle:nil];
// Pass the selected object to the new view controller.
[self.navigationController pushViewController:detailViewController animated:YES];
}
AffichageVotesQuestionDuMomentViewController
是我自己创建的自定义 View Controller 。我也尝试创建另一个随机的,但我得到了相同类型的错误。如果我将 initWithNibName:
设置为 nil
,它会转到顶部有导航栏的 View Controller ,但那是完全黑色的。现在,我是一名初学 iPhone 程序员,对 Nib 、 Nib 名称等了解甚少。任何帮助表示赞赏。另外,我没有在 Storyboard或任何东西中做任何 segue,因为我似乎正在以编程方式创建 View Controller 并以这种方式插入。如果有一个很好的方法可以用 segue 做到这一点,我也可以接受(但我需要知道被点击的单元格的行)。
谢谢!
最佳答案
因为您使用的是 IB Storyboard,所以我认为您应该执行以下操作:
UIStoryboard* sb = [UIStoryboard storyboardWithName:@"mystoryboard" bundle:nil];
UIViewController* vc = [sb instantiateViewControllerWithIdentifier:@"AffichageVotesQuestionDuMomentViewController"];
... 而不是使用用于经典的基于 xib 的方法的“initWithNibName”-初始值设定项。
关于iPhone: "initWithNibName:bundle:"的 TableViewController nibName 错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13550251/