我有一段简单的代码将一个新的视图控制器推送到我的导航控制器上
- (IBAction)buttonSelected:(id)sender{
caseBillingFormViewController = [[CaseBillingFormViewController alloc] initWithStyle:UITableViewStyleGrouped];
caseBillingFormViewController.returnScreen = @"FALSE";
[self.navigationController pushViewController:caseBillingFormViewController animated:YES];
}
我在最后一行崩溃了:
[self.navigationController pushViewController:caseBillingFormViewController animated:YES];
我不知道为什么会发生这种情况,它是 iOS6 的新增功能。升级版本之间的代码库没有改变,所以我不确定为什么会这样。
我的 caseBillingFormViewController 在我的界面中命名:
CaseBillingFormViewController *caseBillingFormViewController;
我检查了 self.navigationController 的完整性,一切都检查出来了:
NSLog(@"%i",[self.navigationController respondsToSelector:@selector(pushViewController:animated:)]);
//gives 1
问题是这只出现在由 UITableView 管理的屏幕上 -
caseBillingFormViewController = [[CaseBillingFormViewController alloc] initWithStyle:UITableViewStyleGrouped];
//crashes
savedOrdersViewController = [[SavedOrdersViewController alloc] initWithNibName:@"SavedOrdersViewController" bundle:[NSBundle mainBundle]];
//does not crash
任何人都可以解释为什么会这样吗?
在 Simulator 5.1 和 Simulator 6.0 上测试了相同的代码 - 错误只发生在后者上。
注意,错误是:
'NSUnknownKeyException', reason: '[<CaseBillingFormViewController 0xc09c0b0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key theTableView.'