iOS:导航栏未显示何时从主视图控制器嵌入

时间:2017-06-01 16:27:25

标签: ios objective-c uiviewcontroller uinavigationcontroller

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

enter image description here

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

- (IBAction)blue:(id)sender {

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

蓝色视图控制器嵌入了导航栏。但是没有在蓝色viewcontoller或粉红色视图控制器上显示:

enter image description here 我向你们提出的问题是我做错了什么?或为什么视图控制器没有显示?

2 个答案:

答案 0 :(得分:2)

为蓝色VC的导航控制器提供一个故事板ID,并显示该代替蓝色VC。

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

- (IBAction)blue:(id)sender {

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

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

答案 1 :(得分:0)

如果要在视图控制器上显示,则必须在导航控制器上的控制器顶部添加自定义视图。如果您按下控制器,那么您就不需要上述操作。您将找到所有相同的导航栏。 Cz它在您的导航控制器堆栈中。