【问题标题】:iOS:Navigation bar not showing when is embed from the main view controlleriOS:当从主视图控制器嵌入时,导航栏不显示
【发布时间】:2017-06-01 16:27:24
【问题描述】:

我的故事板上有以下布局:

当我点击按钮时,我会加载蓝色视图控制器:

- (IBAction)blue:(id)sender {

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    BlueViewController *blue = [storyboard instantiateViewControllerWithIdentifier:@"BlueViewController"];
    [self presentViewController:blue animated:YES completion:nil];
}

蓝色视图控制器嵌入了导航栏。但在蓝色视图控制器或粉红色视图控制器上均不显示:

我对你们的问题是我做错了什么?或者为什么视图控制器没有显示?

【问题讨论】:

    标签: ios objective-c uiviewcontroller uinavigationcontroller


    【解决方案1】:

    为蓝色 VC 的导航控制器提供一个故事板 ID,并显示它而不是蓝色 VC。

    如果你展示一个 VC,即使它有一个导航控制器,它也不会显示出来,因为你只展示了视图控制器。

    - (IBAction)blue:(id)sender {
    
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
        UINavigationController *blueNavVC = [storyboard instantiateViewControllerWithIdentifier:@"BlueViewControllerNavigationController"];
        [self presentViewController: blueNavVC animated:YES completion:nil];
    }
    

    当你想从蓝色移动到粉色时,你需要推送到粉色控制器,因为粉色是蓝色导航控制器堆栈的一部分!

    【讨论】:

    • 你是什么意思?,你能发个例子吗?
    • 非常感谢您的帮助!
    【解决方案2】:

    如果您想在视图控制器上显示,那么您必须在控制器顶部添加一个自定义视图,因为它位于您的导航控制器上。如果您按下控制器,则不需要上述内容。您会发现所有人都使用相同的导航栏。 Cz 它在您的导航控制器堆栈中。

    【讨论】:

      猜你喜欢
      • 2021-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多