【问题标题】:When I use prepareForSegue to pass value to the aim controller, there are some problems当我使用 prepareForSegue 将值传递给目标控制器时,存在一些问题
【发布时间】:2012-08-15 13:44:42
【问题描述】:

首先,我使用storyboard创建了两个uiviewcontroller:firstviewcontrollersecondviewcontroller。并使用 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


    【解决方案1】:

    你是对的,destinationViewController 将是一个 UINavigationController 你有 secondViewController 嵌入。也许试试:

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

    【讨论】:

      猜你喜欢
      • 2016-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多