我想在某些控制器上显示和隐藏状态栏。这可以完成吗?或者它更像是一个整体应用程序设置。
我看过很多关于 plist 更新的帖子/问题:
View controller-based status bar appearance - NO
如果这完成了,那么将给予什么控制?
我希望在应用程序的主屏幕上显示状态栏。但例如在侧面(幻灯片)菜单上我希望它不显示,这可能吗?可以在 IB 或代码中更改吗?
编辑 -
我正在使用一个https://github.com/edgecase/ECSlidingViewController https://github.com/edgecase/ECSlidingViewController执行。
主控制器(显示第一页)应显示状态栏,但左侧菜单控制器滑动时不应显示状态栏。
我认为问题在于它们都位于同一根控制器(滑动视图控制器)中,因此很难完成。
理想情况下,如果主屏幕(主页)在滑动时可以带有状态栏,那么看起来会最好。
plist 设置"View controller-based status bar appearance"
仅控制是否应在 iOS 7 上应用基于每个控制器的设置。
如果将此 plist 选项设置为 NO,则必须手动启用和禁用状态栏,如下所示(直到 iOS 6):
[[UIApplication sharedApplication] setStatusBarHidden:YES]
如果将此 plist 选项设置为 YES,则可以将此方法添加到每个 viewController 中,以便为每个控制器独立设置 statusBar(如果您有 viewController 的智能子类系统,这尤其好)
- (BOOL)prefersStatusBarHidden {
return YES;
}
Edit:
如果您选择新的基于 viewController 的状态栏外观,还有两种有趣的方法 -
使用以下命令强制更新状态栏:
[self setNeedsStatusBarAppearanceUpdate]
如果您有嵌套控制器(例如 TabBarController 子类中的 contentViewController,您的 TabBarController 子类可能会询问它是当前的 childViewController 并转发此设置。我认为在您的具体情况下可能有用:
- (UIViewController *)childViewControllerForStatusBarHidden {
return _myChildViewController;
}
- (UIViewController *)childViewControllerForStatusBarStyle {
return _myOtherViewController;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)