问题与装载的UITableView导航为基础的应用程序

问题描述:

在基于导航的应用程序,当我试图加载已得到使用initWithNibName实现UITableView另一种观点认为:点击UITableView细胞后问题与装载的UITableView导航为基础的应用程序

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

我得到:

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 )

但是,当我在InterfaceBuilder中断开UITableView时,视图加载没有任何问题(除了没有办法将数据推入它)。

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

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

MyTableViewController *detailsViewController = [[MyTableViewController alloc] initWithNibName:@"bloop2ViewController" bundle:nil]; 
+0

就像一个魅力......我花了整整一天的跟踪下来,我认真欠你:) 再次感谢,并保重! – 2009-06-13 13:49:15

我得到这个问题和修复是为了确保两个

  1. 我在主窗口厦门国际银行在标签栏下方的视图控制器设置的NIB名,
  2. 在子视图控制器中设置了类名称。

This页面对我很有帮助。

我刚刚经历过这个问题。在我的情况下,原因是MyTableViewController的实现代码被排除在当前的构建配置之外。希望能帮助别人。

另一种方式可以咬你。我已经抛出了xib的视图,并开始了。无论我做了什么,视图都会在加载时抛出异常。将头发拉出几个小时后,我终于从模拟器中删除了该应用程序,并将其修复。不知怎的,旧的xib在安装时没有被替换。

这个我忘了

2小时后
@synthesize tableView = _tableView; 

希望它可以帮助

马里奥