【发布时间】:2015-07-17 14:53:02
【问题描述】:
我知道它是重复的。但是仍然有问题,即使尝试了可能性也没有奏效。因此发布相同的解决方案。希望能得到大家的帮助。
初始嵌入在 UINavigationController 中。对于初始(着陆视图),必须隐藏导航栏。从着陆视图调用其他视图时 - 必须显示导航栏。
我正在通过覆盖视图的方法来处理登陆视图中导航栏的隐藏和显示,如下所示:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
// Hiding the navigationbar hidden for the first page
[[self navigationController] setNavigationBarHidden:YES animated:YES];
}
// 甚至尝试过动画:NO & 动画:动画
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
// Showing the navigationbar hidden for the first page
[[self navigationController] setNavigationBarHidden:NO animated:YES];
}
当应用程序最初加载时,导航栏处于隐藏状态(如预期和工作正常)。当从子视图控制器返回到着陆视图时,导航栏会在几秒钟后隐藏 - 着陆视图会加载到 ui 屏幕上。
我还尝试在登陆视图中使用导航控制器委托方法:navigationController: willShowViewController: animated:。但无法达到我需要的解决方案。
因此,我在我的一个子视图控制器中提供了导航控制器委托,并使用 if 条件检查了弹出时子控制器是否不在导航控制器的视图控制器中。如果是,那么我提供了导航栏的隐藏选项。但也没有解决办法。
在冲浪期间,有一个处理视图动画的解决方案。我试过了,也失败了。
再次浏览,提供的解决方案是处理 viewwillappear 和 viewwilldisappear 的类似问题。我眨了眨眼,因为我正在做的方式与建议的方式相似。即便如此,也无法达成解决方案。
仅供参考。我使用的是 Xcode 6.3,部署目标是 6.0 以后。我正在使用故事板来管理视图。
请帮我解决问题...App loads is hiding the nav bar in landing page. But when landing page is loaded back from a child view then the nav bar gets hidden only after the landing page loaded on to the ui. I do need to get hidden of the nav bar as like when app loads, when the child view pops and the landing view gets loaded on the top of the controller.
【问题讨论】:
-
我认为您正在 ViewWillAppear 中编写代码.. 因为它我认为问题发生了。因为这个方法在 viewDidLoad 之后被调用。
-
试着正确而简短地解释问题。
-
@AshokLondhe,在“请帮我解决问题...”之后简要介绍的最后几行是我的问题。
-
将
[[self navigationController] setNavigationBarHidden:NO animated:YES];放入viewWillDisappear:而不是viewDidDisappear。 -
@M.SwornaVidhya 你试过vijeesh回答吗。
标签: ios objective-c uinavigationcontroller storyboard uinavigationbar