ios - 当我使用 prepareForSegue 将值传递给目标 Controller 时,出现了一些问题

标签 ios uinavigationcontroller storyboard uistoryboardsegue

首先,我使用 Storyboard 创建了两个 uiviewcontroller:firstviewcontrollersecondviewcontroller。并使用 xcode 将 uinavigationcontroller 嵌入到 secondviewcontroller(编辑 --> 嵌入 --> 导航 Controller )。然后,我还想使用 segue 将值从 first 传递到 second。有代码:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if([segue.identifier isEqualToString:@"passValue"])
    {
        secondViewController *saveViewController = [segue destinationViewController];
        [saveViewController setValue:data forKey:@"data"];
    }
}

但是会报错,log是: 由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[setValue:forUndefinedKey:]:此类与关键数据的键值编码不兼容。”/p>

但是,当我删除我使用Xcode插入的导航 Controller 并通过代码定义导航栏时,这个问题就会消失。我想原因是真正的 destinationViewController 是 navigationcontroller 而不是 secondviewcontroller。那么如果我想保留 Xcode 嵌入的导航 Controller ,如何解决这个问题?

最佳答案

你是对的,destinationViewController 将是一个你嵌入了 secondViewControllerUINavigationController。也许试试看:

secondViewController *saveViewController = [[segue destinationViewController] topViewController];

关于ios - 当我使用 prepareForSegue 将值传递给目标 Controller 时,出现了一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12034093/

相关文章:

ios - 关闭已用时间

iphone - 如何从 Facebook 检索照片

ios - 如何删除 Swift 中节的所有行

基于屏幕( super View )高度的 iOS Top Alignment 约束

ios - == 究竟如何与 Set() 一起工作 - Swift

ios - 更改此 Root View 设置

iphone - 如何禁用 UINavigationBarItem?

iphone - UISegmentedControl 选定的色调未显示

ios - 如何从 native ios View 弹出回 flutter View ?

ios - 如何切片图像并使用图像 Assets 使其可拉伸(stretch)