Swift 3.0 – 如何在调用UIImagePickerController后隐藏状态栏?
新年快乐!
我想在iOS 10.2上调用UIImagePickerController后隐藏状态栏。 你知道已经有几个问题有一些答案,但我担心答案不适用于Swift 3.0。
建议的答案是:
- 扩展UINavigationController以覆盖preferStatusBarHidden,因为UIImagePickerController是UINavigationController的子类。
所以我尝试过:
extension UINavigationController{ open override var prefersStatusBarHidden: Bool{ return true } }
- 扩展UIImagePickerController以覆盖prefersStatusBarHidden。
所以我尝试过:
extension UIImagePickerController{ open override var prefersStatusBarHidden: Bool{ return true } }
- 创建并使用UIImagePicker的子类
所以我尝试过:
class MyImagePickerController: UIImagePickerController{ override var prefersStatusBarHidden: Bool{ return true } }
但不幸的是,上述解决方案似乎都不适合我。 我想要熟练使用Swift 3.0的iOS开发人员让我知道如何在调用UIImagePickerController后隐藏状态栏。
感谢您的关注和时间!
可以使用UIImagePickerController
的以下扩展名永久隐藏状态栏:
extension UIImagePickerController { open override var childViewControllerForStatusBarHidden: UIViewController? { return nil } open override var prefersStatusBarHidden: Bool { return true } }
这适用于iOS 10上的Swift 3。
您正在添加UINavigationControllerDelegate
的委托方法方法,如下所示。
class PersonalInfoVC: UIViewController, UIImagePickerControllerDelegate , UINavigationControllerDelegate{
添加委托并隐藏其中的状态栏。
func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool){ UIApplication.shared.isStatusBarHidden = true }