首先,我使用故事板创建两个 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"];
}
}
但是会报错,日志是: Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key data.'
但是,当我删除使用Xcode插入的导航控制器并通过代码定义导航栏时,这个问题就会消失。我猜原因是真正的 destinationViewController 是navigationcontroller而不是secondviewcontroller。那么如果我想保留Xcode嵌入的导航控制器,如何解决这个问题呢?