【问题标题】:Pass variable to View Controller Embedded in Navigation Controller in Objective-C将变量传递给嵌入在 Objective-C 导航控制器中的视图控制器
【发布时间】:2018-11-24 18:06:26
【问题描述】:

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

我的代码是:

    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 的值。

我错过了什么?

感谢您的任何建议。

【问题讨论】:

    标签: ios uiviewcontroller parameter-passing


    【解决方案1】:

    在您的代码中,您有一条注释说:

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

    但是,该注释下方的视图控制器不是嵌入在导航控制器中的视图控制器。这是一个全新的控制器,在该行创建并在函数结束时处理。

    你需要更多这样的东西:

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

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

    【讨论】:

    • 是的。就是这样。我想您也可以从情节提要中实例化 myVC,然后使用 [[UINavigationController alloc] initWithRootViewController: myVC] 从 myNav 获取导航;然后启动 myNav。您只是不能从情节提要中实例化两者并期望它们被连接。
    • 没有。如果您从情节提要中实例化 myVC,则它不会连接到 UINavigationController。
    猜你喜欢
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2021-05-13
    • 2017-10-24
    • 1970-01-01
    • 2015-03-12
    相关资源
    最近更新 更多