iPhone:TableViewController nibName 错误,带有“initWithNibName:bundle:”
Posted
技术标签:
【中文标题】iPhone:TableViewController nibName 错误,带有“initWithNibName:bundle:”【英文标题】:iPhone: TableViewController nibName error with "initWithNibName:bundle:" 【发布时间】:2012-11-25 10:41:26 【问题描述】:我有一个动态单元格UITableViewController
,我想在有人点击一个单元格时推送一个特定的视图控制器。所以我尝试使用预制的方法
- (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
是我自己创建的自定义视图控制器。我还尝试创建另一个随机的,但我得到了相同类型的错误。如果我将initWithNibName:
设置为nil
,它会转到顶部有导航栏的视图控制器,但那是完全黑色的。
现在,我是一名初学 iPhone 程序员,对笔尖、笔尖名称等了解甚少。任何帮助表示赞赏。此外,我没有在情节提要或任何东西中做任何事情,因为我似乎正在以编程方式创建视图控制器并以这种方式推动。不过,如果有一个很好的方法可以用 segue 做到这一点,我也可以(但我需要知道被点击的单元格的行)。
谢谢!
【问题讨论】:
您没有调用正确的 xib 名称,或者 xib 不在您的包中 我想我正在做我应该做的一切。我有这个视图控制器文件,.h 和 .m,它有正确的名称,里面有它需要的一切......那么它为什么不工作呢?我需要对 Storyboard 做些什么吗? 【参考方案1】:因为您使用的是 IB 故事板,所以我认为您应该这样做:
UIStoryboard* sb = [UIStoryboard storyboardWithName:@"mystoryboard" bundle:nil];
UIViewController* vc = [sb instantiateViewControllerWithIdentifier:@"AffichageVotesQuestionDuMomentViewController"];
...而不是使用经典的基于 xib 方法的“initWithNibName”-initializer。
【讨论】:
这工作:) 非常感谢。你能解释一下为什么我需要这样做吗?这让我有点困惑(我不知道 xib 是什么)。 你好康拉德!我认为这只是故事板的工作方式! :) 只需查找 documentation 即可。以上是关于iPhone:TableViewController nibName 错误,带有“initWithNibName:bundle:”的主要内容,如果未能解决你的问题,请参考以下文章
UITableview 不通过 willdisplaycell 选择单元格