如何仅隐藏/禁用第一个 uinavigationbar?

2024-04-11

我一直在思考如何隐藏/删除/禁用导航控制器中的主导航栏或第一个导航栏,以便我可以将图像作为整个背景屏幕,但我找不到任何解决方案。

尝试在主导航控制器的 viewdidLoad 中隐藏 titleview 但没有成功。尝试使用 navigationBarHidden 但它隐藏了下一个控制器堆栈的整个导航栏。

所以,我不知道该怎么做。举个例子,我想要一个类似这个应用程序的东西 - 大师高尔夫锦标赛 -http://appshopper.com/sports/the-masters-golf-tournament http://appshopper.com/sports/the-masters-golf-tournament.

如果您查看屏幕 1,它的顶部没有任何导航栏,但是当您触摸任何选项时,它会推送到新的视图控制器,并使导航栏显示为屏幕 3,4 和 5 中的样子。

希望有人能帮助我。非常感谢!


在我的大多数应用程序中,我都有一个自定义 UIViewController 类,我从中派生所有其他自定义控制器。在其中一些中,我添加了类似的方法navigationBarInitiallyHidden到其他类可以覆盖的基类。默认结果取决于应用程序的性质。

在导航控制器的委托中,当显示实现该方法的控制器时,委托会相应地隐藏或显示导航控制器。由于我为隐藏或显示设置了动画,因此我会检查当前状态,如果不需要更改,则不执行任何操作。

您可以在委托方法中做一些更简单的事情。如果显示的控制器是根控制器,则隐藏导航栏,否则如果隐藏则显示它。

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
  if ( viewController == rootController ) {
    [navigationController setNavigationBarHidden:YES animated:animated];
  } else if ( [navigationController isNavigationBarHidden] ) {
    [navigationController setNavigationBarHidden:NO animated:animated];
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何仅隐藏/禁用第一个 uinavigationbar? 的相关文章

随机推荐