Jadi saya mengalami masalah ini dan saya dapat menyelesaikannya hanya dengan menerapkan satu fungsi delegasi. Latar belakang bilah status saya berwarna hitam, sehingga UIStatusBarStyle untuk aplikasi saya adalah .LightContent. Ketika saya mempresentasikan UIImagePickerController untuk memilih foto dari penyimpanan perangkat, bilah status baik-baik saja. Namun, saat mengklik ke direktori seperti "Rol Kamera" atau "Favorit," secara efektif mendorong ke tumpukan navigasi, bilah status menghilang. Saat memilih foto, tidak ada bilah status sama sekali; setelah menutup pengontrol tampilan modal lainnya, hanya baterai yang ada, yang menunjukkan bahwa bilah status lainnya mungkin juga hitam.
Saya mencoba beberapa solusi lain seperti memperluas UIImagePickerController, tetapi di Swift, Anda tidak dapat mengganti menggunakan ekstensi. Saya kemudian mencoba membuat subkelas UIImagePickerController dan mencoba menyembunyikan bilah statusnya di viewWillAppear () dan memperlihatkan bilah status di viewWillDisappear. Saya dapat melihat bilah status disembunyikan dengan animasi .Slide, tetapi karena bilah status tidak terlihat saat memilih direktori, saya tidak dapat melihat bilah status ditampilkan. Sekali lagi, baterai hijau kembali dengan sisa bilah status tidak terlihat setelah menutup pengontrol tampilan modal. Saya juga mencoba mengganti prefersStatusBarHidden (), tetapi fungsi itu tidak pernah dipanggil, jadi saya mencoba memanggil setNeedsStatusBarAppearanceUpdate () untuk memastikan bahwa prefersStatusBarHidden () dipanggil oleh sistem, tetapi masih tidak dipanggil. Juga, ada saran untuk menyetel bilah status agar disembunyikan pada metode delegasi navigationController willShowViewController. Sekali lagi, yang dilakukan hanyalah menyembunyikan bilah status, yang tidak menyelesaikan masalah. Ternyata, tampaknya gaya bilah status diubah setelah didorong ke tumpukan navigasi UIImagePickerController. Untuk mengatasi masalah sepenuhnya, saya tidak perlu menulis ekstensi atau subclass UIImagePickerController. Yang perlu Anda lakukan hanyalah menyetel delegasi dan menyetel gaya bilah status agar tetap sama. Penambahan ini seolah-olah masalah tidak pernah ada. tampaknya gaya bilah status diubah saat mendorong ke tumpukan navigasi UIImagePickerController. Untuk mengatasi masalah sepenuhnya, saya tidak perlu menulis ekstensi atau subclass UIImagePickerController. Yang perlu Anda lakukan hanyalah menyetel delegasi dan menyetel gaya bilah status agar tetap sama. Penambahan ini seolah-olah masalah tidak pernah ada. tampaknya gaya bilah status diubah saat mendorong ke tumpukan navigasi UIImagePickerController. Untuk mengatasi masalah sepenuhnya, saya tidak perlu menulis ekstensi atau subclass UIImagePickerController. Yang perlu Anda lakukan hanyalah menyetel delegasi dan menyetel gaya bilah status agar tetap sama. Penambahan ini seolah-olah masalah tidak pernah ada.
let pickerController = UIImagePickerController()
pickerController.delegate = self
func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) {
UIApplication.sharedApplication().setStatusBarStyle(.LightContent, animated: false)
}