Скрыть строку состояния после вызова imagePickerController
Независимо от того, что я делаю, строка состояния продолжает появляться, когда я открываю средство выбора изображений, и не исчезает после его закрытия. Я попробовал различные быстрые решения, которые я смог прочитать на этом сайте, которые должны решить проблему, но это не поможет.
Вот что я делаю. Я подкласса контроллера выбора:
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 action:
func chooseImageFromGallery() {
var image = MyImagePickerController()
image.delegate = self
image.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
image.allowsEditing = false
self.presentViewController(image, animated: true, completion: nil)
}
Также, конечно, я установил панель, скрытую в файле Plist. Проблема конкретно при вызове сборщика контроллера. Пожалуйста, ответьте в Swift.
1 ответ
Используйте код ниже, чтобы сделать это
import Foundation
extension UIImagePickerController {
override public func prefersStatusBarHidden() -> Bool {
return true
}
}
это расширение (категория) UIImagePickerController и работает для меня.