ios - 调用 imagePickerController 后隐藏状态栏

标签 ios swift uiimagepickercontroller statusbar

无论我做什么,当我打开图像选择器时,状态栏一直出现,并且在关闭后不会消失。我尝试了我能够在此站点上阅读的各种快速解决方案,这些解决方案应该可以解决问题,但根本无济于事。

这是我的工作。我将选择器 Controller 子类化:

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文件中设置了隐藏栏。问题特别是在调用选择器 Controller 时。 请用 Swift 回答。

最佳答案

使用下面的代码来做到这一点

import Foundation

extension UIImagePickerController {
    override public func prefersStatusBarHidden() -> Bool {
        return true
    }
}

这是 UIImagePickerController 的扩展(类别),适合我。

关于ios - 调用 imagePickerController 后隐藏状态栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28540881/

相关文章:

ios - iPhone - 在 iTunesConnect 上的应用程序有效期结束后,我可以再次使用相同的名称吗?

ios - 如何使用 pdfkit 从相机拍摄的图像创建 pdf

ios - 在 Swift 中实现 UIImagePickerController

iphone - UIImagePickerController 不显示

ios - 添加到 MKMapView 时出现 UILongPressGestureRecognizer 问题

swift - NSFileManager 文件存在于路径 :isDirectory and swift

ios - Cordova iOS Filetransfer 下载文件到 www 文件夹

ios - 获取最后十个 firebase 值并将它们分配给十个 UIButton 的标题

ios - 在使用 Realm 的查询中过滤具有两个嵌套级别的对象

swift - 用于对象识别的 ARKit 和 Vision 框架