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

aws*_*ome 4 iphone

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

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

 PersonnelDetails *detailViewController = [[PersonnelDetails alloc] initWithNibName:@"PersonnelDetails" bundle:[NSBundle mainBundle]];
Run Code Online (Sandbox Code Playgroud)

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

}

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] loaded the "PersonnalDetails" nib but didn't get a UITableView.'

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

 PersonnelDetails *detailViewController = [[PersonnelDetails alloc] initWithNibName:@"PersonnelDetails" bundle:[NSBundle mainBundle]];
Run Code Online (Sandbox Code Playgroud)

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

} inhertance: - 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.什么是可能的原因?

Tùn*_* Đỗ 16

我认为问题是因为你是UITableViewController的子类,而不是UIViewController.我之前遇到过同样的问题.


Bog*_*dan 5

这可能听起来很奇怪,但在我的情况下,我真的需要一个带有表视图的UITableViewController.我没有使用xib文件,所以我正在使用代码构建所有接口.

我收到了同样的错误.

我做的是像这样覆盖loadView方法,它工作了!

- (void)loadView {
    [super loadView];
}
Run Code Online (Sandbox Code Playgroud)

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

此类不是键设置视图的键值编码兼容

,而settingsView属性我没有使用它,它的评论.

我现在很困惑!虽然使用loadView覆盖它可以工作.

编辑

我已经从我的iPhone中删除了应用程序然后再次使用loadView进行了评论并且它现在可以正常运行...