Ios 当我使用prepareForSegue将值传递给aim控制器时,存在一些问题
首先,我使用故事板创建两个uiviewcontroller:firstviewcontroller和secondviewcontroller。并使用xcode将uinavigationcontroller嵌入secondviewcontroller(编辑器-->嵌入-->导航控制器)。然后,我还想使用segue将值从第一个传递到第二个。代码如下:Ios 当我使用prepareForSegue将值传递给aim控制器时,存在一些问题,ios,uinavigationcontroller,storyboard,uistoryboardsegue,Ios,Uinavigationcontroller,Storyboard,Uistoryboardsegue,首先,我使用故事板创建两个uiviewcontroller:firstviewcontroller和secondviewcontroller。并使用xcode将uinavigationcontroller嵌入secondviewcontroller(编辑器-->嵌入-->导航控制器)。然后,我还想使用segue将值从第一个传递到第二个。代码如下: -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { i
-(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嵌入的导航控制器,如何解决此问题?没错,destinationViewController将是嵌入了secondViewController的UINavigationController。也许可以试试:
secondViewController *saveViewController = [[segue destinationViewController] topViewController];