【问题标题】:How to remove status bar when TouchID Alert Appears?出现 TouchID 警报时如何删除状态栏?
【发布时间】:2015-02-09 19:07:25
【问题描述】:

我试图在整个应用程序中隐藏状态栏。但是,当 TouchID 警报从应用程序中出现时,状态栏就会出现。

在我的AppDelegate.swift 文件中,我添加了以下行:
application.statusBarHidden = true

这似乎没有涵盖 TouchID 函数出现时的情况。这个案例有什么特别的吗?

【问题讨论】:

  • 好问题,我不确定这是否可能......
  • 当您实现一个 Apple 框架(例如本地身份验证框架)时,它包含一个警报或活动警报,您实际上是将手机的焦点交给了系统,因此失去了对所发生事情的控制。一旦应用程序重新获得焦点,屏幕上的 View 很可能会再次显示 viewDidAppear。奇怪的是系统没有继续这种风格,但你无能为力。

标签: ios swift appdelegate touch-id


【解决方案1】:

我知道它已经晚了,但对于那些仍然面临同样问题的人来说。它不是苹果的错误。你必须自己解决。

我已经在 iOS 9、10、11 上对其进行了检查,并且工作正常。只需执行以下步骤:

  • 打开 info.plist
  • “基于视图控制器的状态栏外观”设置为 NO
  • “状态栏最初是隐藏的”设置为 YES

完成了:)

【讨论】:

    【解决方案2】:

    我相信这是一个操作系统错误。我们将不得不等待 Apple 修复它。

    与此同时,总是有一些令人讨厌的解决方法。 尝试在 0.2 秒后隐藏状态栏。

    // Add this in the function that calls Touch ID
    var dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(0.2 * Double(NSEC_PER_SEC)))
      dispatch_after(dispatchTime, dispatch_get_main_queue(), {
        self.hideStatusBar()
      })
    
    
    // Add this function
    func hideStatusBar () {
      UIApplication.sharedApplication().statusBarHidden = true
    }
    

    【讨论】:

      猜你喜欢
      • 2017-02-04
      • 1970-01-01
      • 2015-12-09
      • 1970-01-01
      • 2015-04-24
      • 1970-01-01
      • 1970-01-01
      • 2020-02-14
      • 1970-01-01
      相关资源
      最近更新 更多