加载了“PersonnalDetails”笔尖,但没有得到 UITableView

Posted

技术标签:

【中文标题】加载了“PersonnalDetails”笔尖,但没有得到 UITableView【英文标题】:loaded the "PersonnalDetails" nib but didn't get a UITableView 【发布时间】:2010-04-13 22:35:18 【问题描述】:

我正在尝试使用以下代码加载新视图

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

 PersonnelDetails *detailViewController = [[PersonnelDetails alloc] initWithNibName:@"PersonnelDetails" bundle:[NSBundle mainBundle]];

[self.navigationController pushViewController:detailViewController Animation:YES]; [detailViewController 发布];

继承:- PersonnelDetails 继承 UITableViewController

但我遇到了一个例外: Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] loaded the "PersonnalDetails" nib but didn't get a UITableView.' 即使我在 PersonnalDetails nib 中有一个 UITableView,并且我已将 PersonnelDetails(viewController) 的视图出口连接到 UITableView。 可能的原因是什么?

【问题讨论】:

错字?有一个区别: initWithNibName:@"PersonnelDetails"loaded the "PersonnalDetails" 有错字,但在整个应用程序中是一致的。我刚刚为这篇文章更正了它,现在我认为我不应该这样做。 我也有同样的问题,但是你有 PersonalDetails 的文字我有一个非常神秘的名字:bua-sk-pLW-view-2D1-Eq-mlN。退出 Xcode 也不起作用。 【参考方案1】:

我认为这个问题是因为你继承 UITableViewController 而不是 UIViewController。我之前也遇到过同样的问题。

【讨论】:

【参考方案2】:

这听起来可能很奇怪,但就我而言,我确实需要一个带有表格视图的 UITableViewController。我没有使用 xib 文件,所以我正在使用代码构建所有接口。

我收到了同样的错误。

我所做的就是像这样重写 loadView 方法,它起作用了!

- (void)loadView 
    [super loadView];

现在奇怪的是,如果我评论 loadView 方法,我会收到另一个错误:

该类不符合键设置视图的键值编码

,虽然我没有使用 settingsView 属性,但它已被注释。

我现在很困惑!尽管使用 loadView 覆盖它可以工作。

编辑

我已经从我的 iPhone 中删除了该应用程序,然后在 loadView 注释的情况下再次运行它,它现在可以工作了...

【讨论】:

我刚刚在 XCode 4.5 上使用 ios 6 模拟器遇到了完全相同的情况。多么可笑。不过谢谢分享! 我不喜欢这为我解决了这个问题,但确实如此......所以谢谢!【参考方案3】:

我不知道问题出在哪里,但是重新启动 XCode 后,一切正常。

【讨论】:

现在我可能知道,我并没有明确保存界面生成器文档。我有一个错误的想法,即在 iphone 模拟器中运行应用程序会弹出保存对话框,这反过来也会保存界面构建器文档中的更改。不幸的是,情况并非如此。因此,通过关闭 xcode 和界面生成器,我得到了保存我所做的更改并导致问题解决的消息。【参考方案4】:

您在 .h 文件中犯了错误,

@interface ViewController : UITableViewController<UITableViewDelegate, UITableViewDataSource

@interface SearchViewController : ViewController<UITableViewDelegate, UITableViewDataSource

改为

@interface SearchViewController : UIViewController<UITableViewDelegate, UITableViewDataSource

【讨论】:

以上是关于加载了“PersonnalDetails”笔尖,但没有得到 UITableView的主要内容,如果未能解决你的问题,请参考以下文章

加载了笔尖但没有得到 UITableView

视图从笔尖加载但不可见?

加载笔尖但未设置视图出口

加载笔尖但未设置视图出口,找不到视图出口。

如何在 iOS 中调试“[UIViewController _loadViewFromNibNamed:bundle:] 加载了“SearchView”笔尖但未设置视图出口”?

笔尖但没有得到 UITableView