代码之家  ›  专栏  ›  技术社区  ›  user1904273

在Objective-C中,将变量传递给嵌入导航控制器中的视图控制器

  •  0
  • user1904273  · 技术社区  · 5 年前

    我在导航控制器中嵌入了一个目标视图控制器,现在无法向它传递变量。

    我的代码是:

        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    //THis is the navigation controller 
        UIViewController *destVC = [storyboard instantiateViewControllerWithIdentifier:@"myNav"];
    //This is the view controller embedded in the nav
        IDNowVC* myVC = [storyboard instantiateViewControllerWithIdentifier:@"myVC"];
       myVC.sender = @1;//for contacts
    
       [self presentViewController:destVC animated:YES completion:nil];
    

    启动vc之后,sender属性为零。它没有得到值@1。

    我错过了什么?

    谢谢你的建议。

    1 回复  |  直到 5 年前
        1
  •  1
  •   Daniel T.    5 年前

    在您的代码中,您有一条评论说:

    //这是嵌入在导航中的视图控制器

    但是,该注释下面的视图控制器是 嵌入在导航控制器中的那个。它是一个全新的控制器,在该行创建,并在函数末尾进行处理。

    你需要这样的东西:

    UINavigationController *destVC = (UINavigationController *)[storyboard instantiateViewControllerWithIdentifier:@"myNav"];
    IDNowVC* myVC = destVC.childViewControllers[0];
    myVC.sender = @1; 
    

    上面可能有一些语法问题…