【发布时间】:2012-08-15 13:44:42
【问题描述】:
首先,我使用storyboard创建了两个uiviewcontroller:firstviewcontroller和secondviewcontroller。并使用 xcode 将 uinavigationcontroller 嵌入到 secondviewcontroller(编辑器 --> 嵌入 --> 导航控制器)。然后,我还想使用 segue 将值从第一个传递到第二个。有代码:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"passValue"])
{
secondViewController *saveViewController = [segue destinationViewController];
[saveViewController setValue:data forKey:@"data"];
}
}
但是会报错,日志是: 由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[setValue:forUndefinedKey:]:此类不符合键数据的键值编码。”
但是,当我删除使用Xcode插入的导航控制器并通过代码定义导航栏时,此问题将消失。我猜原因是真正的destinationViewController 是navigationcontroller 而不是secondviewcontroller。那么如果我想保留Xcode嵌入的导航控制器,该如何解决这个问题呢?
【问题讨论】:
标签: ios uinavigationcontroller storyboard uistoryboardsegue