出现 TouchID 警报时如何删除状态栏?
Posted
技术标签:
【中文标题】出现 TouchID 警报时如何删除状态栏?【英文标题】:How to remove status bar when TouchID Alert Appears? 【发布时间】:2015-02-09 19:07:25 【问题描述】:我试图在整个应用程序中隐藏状态栏。但是,当 TouchID 警报从应用程序中出现时,状态栏就会出现。
在我的AppDelegate.swift
文件中,我添加了以下行:application.statusBarHidden = true
这似乎没有涵盖 TouchID 函数出现时的情况。这个案例有什么特别的吗?
【问题讨论】:
好问题,我不确定这是否可能...... 当您实现一个 Apple 框架(例如本地身份验证框架)时,它包含一个警报或活动警报,您实际上是将手机的焦点交给了系统,因此失去了对所发生事情的控制。一旦应用程序重新获得焦点,屏幕上的 View 很可能会再次显示 viewDidAppear。奇怪的是系统没有继续这种风格,但你无能为力。 【参考方案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
【讨论】:
以上是关于出现 TouchID 警报时如何删除状态栏?的主要内容,如果未能解决你的问题,请参考以下文章