无论我做什么,当我打开图像选择器时状态栏会不断出现,并且在它被解除后不会消失。我尝试了在本网站上能够阅读的各种快速解决方案,这些解决方案本来可以解决问题,但它根本没有帮助。
这是我的工作。我是选择器控制器的子类:
class MyImagePickerController: UIImagePickerController {
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.setNeedsStatusBarAppearanceUpdate()
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
self.setNavBar()
}
override func prefersStatusBarHidden() -> Bool {
self.setNavBar()
return true
}
override func childViewControllerForStatusBarHidden() -> UIViewController? {
return nil;
}
func setNavBar() -> Void {
self.setNavBar(65)
}
func setNavBar(height: CGFloat) -> Void {
var frame = self.navigationBar.frame;
frame.size.height = height;
self.navigationBar.frame = frame;
}
}
然后我从IBoutled动作中调用它:
func chooseImageFromGallery() {
var image = MyImagePickerController()
image.delegate = self
image.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
image.allowsEditing = false
self.presentViewController(image, animated: true, completion: nil)
}
当然,我设置隐藏在Plist文件中的栏。问题是在调用选择器控制器时。 请在Swift中回答。
答案 0 :(得分:3)
使用以下代码执行此操作
import Foundation
extension UIImagePickerController {
override public func prefersStatusBarHidden() -> Bool {
return true
}
}
这是 UIImagePickerController 的扩展(类别),对我有用。