【问题标题】:Hide Status Bar In certain View controllers *Specific*在某些视图控制器中隐藏状态栏 *特定*
【发布时间】:2017-09-06 05:43:41
【问题描述】:

我有一个关于隐藏状态栏的非常具体的问题。 我合并了下面的代码,以便在每个视图控制器上轻松获取状态栏,但是我有一个不需要状态栏的 cameraViewcontroller。我正在尝试隐藏状态栏。

//change the statusbar color for all view controllers
    application.statusBarStyle = .lightContent

我尝试过使用

override var prefersStatusBarHidden: Bool {
    return true
}

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    UIApplication.shared.isStatusBarHidden = true

    return true
}

但这些似乎都不起作用。我是编程和堆栈溢出的新手,所以请帮帮我。我尝试寻找答案,但似乎找不到这个特殊困境的答案。您的帮助将不胜感激!谢谢。

【问题讨论】:

    标签: ios swift3 xcode8


    【解决方案1】:

    它非常适合我。

    Objective-C

    -(BOOL)prefersStatusBarHidden{
        return YES;
    }
    

    斯威夫特

    override var prefersStatusBarHidden: Bool {
            return true
    }
    

    您还应该使用 info.plist

    “查看基于控制器的状态栏外观”设置为 NO

    “状态栏最初是隐藏的”设置为YES

    【讨论】:

    • “AppDelegate”中的 application.statusBarstyle = .lightcontent 是否会导致此问题?因为状态栏还在CameraViewController中。我已将“基于视图控制器的状态栏外观”设置为 NO。当我将“状态栏最初隐藏”设置为“是”时,我会丢失其他视图控制器上的所有状态栏。
    • "statusBarStyle" 已弃用:IOS 9.0 @KennyHo
    • 因此,据我了解,按照您使用 Swift 的方式,您必须为所有视图控制器编写代码。有没有办法做类似于 statusBarStyle 的事情,它会自动向我的所有视图控制器添加状态栏?然后我只需要为 CameraVC 去掉一个状态栏。
    • 您还使用“override var preferredStatusBarStyle: UIStatusBarStyle {return .lightContent}”更改 StatusBarStyle。
    【解决方案2】:

    你能在CameraVC中应用下面的代码吗:

    override var prefersStatusBarHidden: Bool {
        return true
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-09
      • 1970-01-01
      • 1970-01-01
      • 2014-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-23
      相关资源
      最近更新 更多