将变量传递给Objective-C中嵌入在导航控制器中的View Controller

时间:2018-11-24 18:06:27

标签: ios uiviewcontroller parameter-passing

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

我的代码是:

    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属性为nil。它没有得到@ 1的值。

我想念什么?

谢谢您的建议。

1 个答案:

答案 0 :(得分:1)

在您的代码中,您有一条注释,内容为:

  

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

但是,该注释下方的视图控制器不是您的导航控制器中嵌入的那个。这是一个全新的控制器,它在该行创建并在函数结尾处废弃。

您需要更多类似的东西:

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

上述内容可能存在语法问题...