我知道它是重复的。但是仍然有问题,即使尝试了各种可能性也没有用。因此发布相同的内容以达成解决方案。希望得到大家的帮助。
初始嵌入在 UINavigationController 中。对于初始(着陆 View ),导航栏必须隐藏。从着陆 View 调用时的其他 View - 必须显示导航栏。
我通过覆盖 View 的方法来处理着陆 View 中导航栏的隐藏和显示,如下所示:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
// Hiding the navigationbar hidden for the first page
[[self navigationController] setNavigationBarHidden:YES animated:YES];
}
//甚至尝试过 animated:NO & animated:animated
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
// Showing the navigationbar hidden for the first page
[[self navigationController] setNavigationBarHidden:NO animated:YES];
}
当应用程序最初加载时,导航栏处于隐藏状态(如预期且工作正常)。当从 subview Controller 返回到着陆 View 时,导航栏会在几秒钟后隐藏 - 着陆 View 会加载到 ui 屏幕上。
我还尝试在着陆 View 中使用导航 Controller 委托(delegate)方法:navigationController: willShowViewController: animated:
。但无法找到我需要的解决方案。
因此,我在我的一个 subview Controller 中提供了导航 Controller 委托(delegate),并使用 if 条件检查弹出时的子 Controller 是否不在导航 Controller 的 View Controller 中。如果是,那么我提供了导航栏的隐藏选项。但也没有解决。
在 surfed 期间,有一个解决方案可以处理 viewanimation。我试过了,但也失败了。
再次冲浪,提供的解决方案是处理与viewwillappear & viewwilldisappear类似的问题。我很惊讶,因为我正在做的方式与提议的方式相似。即便如此也无法达成解决方案。
仅供引用.. 我正在使用 Xcode 6.3,部署目标是 6.0 及更高版本。我正在使用 Storyboard来管理 View 。
请帮我解决问题... 应用程序加载隐藏着陆页中的导航栏。但是,当着陆页从 subview 加载回来时,只有在着陆页加载到用户界面后,导航栏才会隐藏。我确实需要隐藏导航栏,就像在加载应用程序时、弹出 subview 时以及在 Controller 顶部加载登陆 View 时一样。
最佳答案
如果你想在第二个 View 中隐藏导航栏,那么不要尝试在 viewWillAppear 和 viewWillDisappear 中进行管理,因为我通过这样的尝试遇到了很多问题并且它也影响了约束。只需在 appDelegate 中为导航 Controller 使用委托(delegate),它对我来说工作正常。
self.navigationController.delegate = self;
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
if ([viewController isKindOfClass:[LoginViewController class]])
{
[self.navigationController setNavigationBarHidden:YES animated:animated];
} else {
[self.navigationController setNavigationBarHidden:NO animated:animated];
}
}
关于ios - UINavigationController 隐藏单个 View Controller 的导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30094191/