当我使用prepareForSegue将值传递给目标控制器时,存在一些问题

2024-05-28

首先,我使用storyboard创建两个uiviewcontroller:第一视图控制器 and 第二个视图控制器。并使用 xcode 嵌入导航控制器 into 第二个视图控制器(编辑器 --> 嵌入 --> 导航控制器)。然后,我还想使用 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是导航控制器代替第二个视图控制器。那么如果我想保留Xcode嵌入的导航控制器,如何解决这个问题呢?


你说得对,目的地视图控制器将是一个UI导航控制器你有第二个视图控制器嵌入。也许尝试一下:

secondViewController *saveViewController = [[segue destinationViewController] topViewController];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当我使用prepareForSegue将值传递给目标控制器时,存在一些问题 的相关文章

随机推荐