即使出现警报也隐藏状态栏
Hide status bar even when an alert is presented
我正在使用
在特定 viewController
上隐藏我的状态栏
override func prefersStatusBarHidden() -> Bool {
return true
}
在我在屏幕上显示警报之前,它工作得非常好。当出现警报时,状态栏再次出现,这是我不想要的。解除警报后,状态栏将再次隐藏。
由于 UIAlertController
现在是成熟的 UIViewController
,您应该能够将其子类化并将相同的方法添加到新的子类中。然后实例化你的子类而不是普通的 UIAlertController
.
未经测试,但应该可以解决问题。
这不是最漂亮的解决方案,但由于 UIAlertController
现在只是 UIViewController
的子类,您可以继承它并覆盖 prefersStatusBarHidden
,就像您对其他视图控制器所做的那样。
其他一切都保持不变。
斯威夫特3:
final class MYAlertController : UIAlertController {
override var prefersStatusBarHidden: Bool {
get {
return true
}
}
}
创建一个名为 CustomAlertController 的 class 并从 UIAlertController 继承它
把这个方法写在这个class
override func prefersStatusBarHidden() -> Bool {
return true
}
并且每当您创建警报时,创建一个 CustomAlertController 实例,然后使用它。
swift 2 个版本
override func prefersStatusBarHidden() -> Bool {
return true
}
swift 3 版本
override var prefersStatusBarHidden: Bool {
return true
}
要显示警报:
let alertController = UIAlertController(title: "Error", message: "No internet connection", preferredStyle: .alert)
let OKAction = UIAlertAction(title: "OK", style: .default) { (action:UIAlertAction) in
print("OK button pressed");
}
alertController.addAction(OKAction)
self.present(alertController, animated: true, completion:nil)
}
请勾选这个link进行测试:
modalPresentationCapturesStatusBarAppearance
设置为 false
。尝试将其设置为 true
以用于您尝试创建的 UIAlertController
。
只写一个扩展,不要创建新的class。
Swift 4
extension UIAlertController {
open override var prefersStatusBarHidden: Bool {
return true
}
}
我正在使用
在特定viewController
上隐藏我的状态栏
override func prefersStatusBarHidden() -> Bool {
return true
}
在我在屏幕上显示警报之前,它工作得非常好。当出现警报时,状态栏再次出现,这是我不想要的。解除警报后,状态栏将再次隐藏。
由于 UIAlertController
现在是成熟的 UIViewController
,您应该能够将其子类化并将相同的方法添加到新的子类中。然后实例化你的子类而不是普通的 UIAlertController
.
未经测试,但应该可以解决问题。
这不是最漂亮的解决方案,但由于 UIAlertController
现在只是 UIViewController
的子类,您可以继承它并覆盖 prefersStatusBarHidden
,就像您对其他视图控制器所做的那样。
其他一切都保持不变。
斯威夫特3:
final class MYAlertController : UIAlertController {
override var prefersStatusBarHidden: Bool {
get {
return true
}
}
}
创建一个名为 CustomAlertController 的 class 并从 UIAlertController 继承它
把这个方法写在这个class
override func prefersStatusBarHidden() -> Bool {
return true
}
并且每当您创建警报时,创建一个 CustomAlertController 实例,然后使用它。
swift 2 个版本
override func prefersStatusBarHidden() -> Bool {
return true
}
swift 3 版本
override var prefersStatusBarHidden: Bool {
return true
}
要显示警报:
let alertController = UIAlertController(title: "Error", message: "No internet connection", preferredStyle: .alert)
let OKAction = UIAlertAction(title: "OK", style: .default) { (action:UIAlertAction) in
print("OK button pressed");
}
alertController.addAction(OKAction)
self.present(alertController, animated: true, completion:nil)
}
请勾选这个link进行测试:
modalPresentationCapturesStatusBarAppearance
设置为 false
。尝试将其设置为 true
以用于您尝试创建的 UIAlertController
。
只写一个扩展,不要创建新的class。
Swift 4
extension UIAlertController {
open override var prefersStatusBarHidden: Bool {
return true
}
}