IOS7状态栏在选定控制器上隐藏/显示

2020/12/13 09:51 · ios ·  · 0评论

我想显示和隐藏某些控制器上的状态栏。可以做到吗,还是更多的整体应用程序设置。

我已经看到许多有关plist更新的帖子/问题:

View controller-based status bar appearance - NO

如果完成了,那么将给予什么控制?

我希望在应用程序的主屏幕上显示状态栏。但是例如在我不想显示的侧面(幻灯片)菜单上,这可能吗?可以用IB或代码更改吗?

编辑-我正在使用https://github.com/edgecase/ECSlidingViewController实现。

主控制器(显示第一页)应显示状态栏,但滑动时不显示左菜单控制器。

我认为问题在于它们都位于同一个根控制器(滑动视图控制器)中,因此很难完成。

理想情况下,如果主屏幕(主页)在滑动时可以带有状态栏,那将是最好的选择。

plist设置"View controller-based status bar appearance"仅控制是否应在iOS 7上应用基于控制器的设置。

如果将此plist选项设置为NO,则必须手动启用和禁用状态栏,例如(直到iOS 6为止):

[[UIApplication sharedApplication] setStatusBarHidden:YES]

如果将此plist选项设置为YES,则可以将此方法添加到每个viewControllers中,以分别为每个控制器设置statusBar(特别是如果您有一个viewControllers的智能子类系统,这很好。)

- (BOOL)prefersStatusBarHidden {
    return YES;
}

编辑:

如果您选择基于ViewController的新状态栏外观,则还有另外两种方法很有意义-

使用以下命令强制更新状态栏:

[self setNeedsStatusBarAppearanceUpdate]

如果您有嵌套的控制器(例如,TabBarController子类中的contentViewController,则TabBarController子类可能会询问其当前的childViewController并转发此设置。我认为在您的特定情况下可能有用:

- (UIViewController *)childViewControllerForStatusBarHidden {
     return _myChildViewController;
}
- (UIViewController *)childViewControllerForStatusBarStyle {
     return _myOtherViewController;
}

在iOS 7及更高版本上,只需实现-prefersStatusBarHidden,例如在UIViewController中应隐藏状态栏的中:

- (BOOL)prefersStatusBarHidden {
    return YES;
}

默认值为NO

迅捷3

override var prefersStatusBarHidden: Bool {
    return true
}

您还可以通过将动画代码放在描述应显示还是隐藏的变量的didSet属性中来在动画块中显示/隐藏状态栏。当为statusBarHiddenBool设置新值时,这将在选定的持续时间内自动触发状态栏的动画更新。

/// Swift 3 syntax: 

var statusBarHidden: Bool = true {
    didSet {
        UIView.animate(withDuration: 0.5) { () -> Void in
            self.setNeedsStatusBarAppearanceUpdate()
        }
    }
}

override var prefersStatusBarHidden: Bool {
    return statusBarHidden
}

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)        
    statusBarHidden = false // show statusBar, animated, by triggering didSet block
}

Swift版本的Mojo66答案

override func prefersStatusBarHidden() -> Bool {
    return true
}
本文地址:http://ios.askforanswer.com/ios7zhuangtailanzaixuandingkongzhiqishangyincang-xianshi.html
文章标签: ,   ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!