Скрыть строку состояния после вызова 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 и работает для меня.

Другие вопросы по тегам