我在导航vc中嵌入了一个root vc,我使用
设置隐藏了导航栏
[self.navigationController setNavigationBarHidden:YES];
它工作正常,导航栏消失。
并推动第二个vc使用
[self.navigationController pushViewController:controller animated:YES];
在第二个vc中设置导航栏显示。一切顺利。
所以当我点击导航栏上的“后退按钮”时,我发现导航栏消失的速度比视图快,特别是将视图的背景设置为黑色,我可以看到 整个视图都是黑色的,就像没有任何导航栏一样 我不希望这样,我只希望导航栏始终显示,直到viewDidDis出现。
Here is a picture of the problem
我使用[self.navigationController popViewControllerAnimated:YES];
并且必须填写Animated is YES才能重现此外观。
对于排序,
[self.navigationController popViewControllerAnimated:YES]
返回。 代码位置在哪里:
ps:无论你如何设置导航栏的hidden-property,在ViewDidLoad或ViewWillAppear或ViewDidAppear或其他地方,它们都是相同的外观。
在root vc的viewDidLoad中
[self.navigationController setNavigationBarHidden:YES];
和root vc的didSelectRowAtIndexPath:
[self.navigationController setNavigationBarHidden:NO];
答案 0 :(得分:2)
答案 1 :(得分:1)
您只需将setNavigationBarHidden:Yes
的来电从第二个vc的viewWillDisappear:
转移到root vc的viewDidAppear:
。
我在视觉上知道这不愉快。我刚刚给了你所说的你想要的东西:“我只希望导航栏一直存在,直到viewDidDis出现。”要获得良好的转换,您需要使用自定义转换。
答案 2 :(得分:0)
Frome ViewDidLoad,移动[self.navigationController setNavigationBarHidden:YES];在ViewDidAppear方法中。它会起作用。
答案 3 :(得分:0)
您应该将[self.navigationController setNavigationBarHidden:NO];
移至子vC viewWillAppear:
并将[self.navigationController setNavigationBarHidden:YES];
移至RootView的viewWillAppear: