UIStoryboard* sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController* vc = [sb instantiateViewControllerWithIdentifier:@"SettingsViewController"];
[[self navigationController] pushViewController:vc animated:YES];
尝试从Storyboard中的NavigationController推送视图控制器,我不断收到此错误。
*由于未捕获的异常'NSUnknownKeyException'而终止应用程序,原因:'[< SettingsViewController 0x1f98f100> setValue:forUndefinedKey:]:此类不是密钥keyPath的密钥值编码兼容。 * 第一次抛出调用堆栈: (0x31f4a3e7 0x39c3b963 0x31f4a0d5 0x327b87d9 0x327b4543 0x31ed08a5 0x33ef5e69 0x340e5b09 0x71aa3 0x33e1b31d 0x33e9dda9 0x32859657 0x31f1f857 0x31f1f503 0x31f1e177 0x31e9123d 0x31e910c9 0x35a6f33b 0x33dad2b9 0x6567d 0x3a068b20) libc ++ abi.dylib:terminate调用抛出异常
答案 0 :(得分:41)
我收到了这个错误,因为我在"用户定义的运行时属性"中添加了一些内容。 "身份检查员"中的字段标签。通过mystake,我保留了Key Path列的默认keyPath值,这导致了问题。
答案 1 :(得分:4)
最有可能的是,故事板中定义的SettingsViewController包含对名为keyPath的IBOutlet的引用,但未在类中定义keyPath。
要解决此问题,请在故事板中选择视图控制器,选择连接检查器(右窗格中的最右侧选项卡),然后查看连接。可能有一个名为keyPath,它可能有一个“!”靠近它。删除那个(和其他任何“!”)。
答案 2 :(得分:1)
使用此&检查:
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
SettingsViewController *myVC = (SettingsViewController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"SettingsViewController"];
[self.navigationController pushViewController:myVC animated:YES];
答案 3 :(得分:0)
右键单击xib文件,打开源代码以找到" keyPath"。