3

在基于导航的应用程序中,当我尝试加载另一个UITableView使用以下方法实现的视图时initWithNibName

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UIViewController *detailsViewController = [[UIViewController alloc] initWithNibName:@"bloop2ViewController" bundle:nil];
    [[self navigationController] pushViewController:detailsViewController animated:YES];
    [detailsViewController release];
}

单击UITableView单元格后,我得到:

2009-06-13 11:44:41.089 Bloop[75227:20b] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0xd446f0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key tableView.' 2009-06-13 11:44:41.092 Bloop[75227:20b] Stack: (
807902715, 2429103675, 808061681, 810717848, 810716389, 816538544, 807805711, 816533170, 816541363, 815230552, 815224116, 815223834, 815217291, 815258907, 815254969, 815262662, 815243017, 815265053, 815242666, 11044, 815018240, 815005661, 810768858, 807687328, 807683624, 839142449, 839142646, 814752238, 9088, 8942 )

但是当我UITableView在 InterfaceBuilder 中断开连接时,加载视图时没有任何问题(除非无法将数据推送到其中)。

UITableView 实现是正确的——我在一个新的 XCode 项目中尝试过,它工作得很好。

4

5 回答 5

6

错误消息说您正在尝试在它没有的 UIViewController 类型的对象上设置属性“tableView”。我只是在猜测,但也许你的 nib 文件中有一个派生视图控制器,它具有 tableView 属性,但是你构造的不是派生对象,而是 UIViewController。你应该试试:

MyTableViewController *detailsViewController = [[MyTableViewController alloc] initWithNibName:@"bloop2ViewController" bundle:nil];
于 2009-06-13T11:37:04.920 回答
0

我遇到了这个问题,解决方法是确保两者

  1. 我在主窗口xib的标签栏下方的视图控制器中设置了NIB名称,并且
  2. 类名是在子视图控制器中设置的。

这个页面对我很有帮助。

于 2011-02-23T13:39:39.793 回答
0

我刚遇到这个问题。在我的情况下,原因是 MyTableViewController从当前构建配置中排除了实现代码。希望对某人有所帮助。

于 2011-11-28T04:46:31.340 回答
0

Yet another way this can bite you. I had tossed out the xib for a view and started over. No matter what I did, the view threw this exception on load. After pulling my hair out for several hours, I finally deleted the app from the simulator and that fixed it. Somehow the old xib wasn't being replaced on install.

于 2012-04-11T08:34:09.430 回答
0

After 2 hours on this i forgot to

@synthesize tableView = _tableView;

Hope it helps

Mário

于 2012-08-02T11:18:14.620 回答