Vì vậy, tôi đã có vấn đề này và tôi đã có thể giải quyết nó bằng cách thực hiện một chức năng ủy nhiệm duy nhất. Nền của thanh trạng thái của tôi là màu đen và vì vậy UIStatusBarStyle cho ứng dụng của tôi là .LightContent. Khi tôi trình bày UIImagePickerControll để chọn ảnh từ bộ lưu trữ thiết bị, thanh trạng thái vẫn ổn. Tuy nhiên, khi nhấp vào thư mục như "Camera Roll" hoặc "Favorites", đẩy hiệu quả vào ngăn xếp điều hướng, thanh trạng thái biến mất. Khi chọn một bức ảnh, không có thanh trạng thái nào cả; khi loại bỏ một bộ điều khiển chế độ xem khác, chỉ có pin, cho biết phần còn lại của thanh trạng thái cũng có thể có màu đen.
Tôi đã thử một số giải pháp khác như mở rộng UIImagePickerControll, nhưng trong Swift, bạn không thể ghi đè bằng tiện ích mở rộng. Sau đó, tôi đã cố gắng phân lớp UIImagePickerControll và cố gắng ẩn thanh trạng thái của nó trên viewWillAppear () và bỏ ẩn thanh trạng thái trên viewWillDisappear. Tôi đã có thể thấy thanh trạng thái ẩn với hình động .Slide, nhưng vì thanh trạng thái là vô hình khi chọn thư mục, tôi không thể nhìn thấy thanh trạng thái bỏ ẩn. Một lần nữa, pin xanh trở lại với phần còn lại của thanh trạng thái vô hình khi loại bỏ bộ điều khiển chế độ xem phương thức. Tôi cũng đã thử ghi đè pre preferStatusBarHidden (), nhưng chức năng đó không bao giờ được gọi, vì vậy tôi đã thử gọi setNeedStatusBarAppparentUpdate () để đảm bảo rằng prelikeStatusBarHidden () được gọi bởi hệ thống, nhưng nó vẫn không được gọi. Cũng thế, có một gợi ý là đặt thanh trạng thái bị ẩn trên phương thức ủy nhiệm navigationContoder willShowViewControll. Một lần nữa, tất cả điều này là ẩn thanh trạng thái, không giải quyết vấn đề. Khi nó bật ra, có vẻ như kiểu thanh trạng thái được thay đổi khi đẩy lên ngăn điều hướng của UIImagePickerCont kiểm soát. Để giải quyết vấn đề hoàn toàn, tôi không phải viết các phần mở rộng hoặc lớp con UIImagePickerControll. Tất cả những gì bạn cần làm là đặt đại biểu và đặt kiểu thanh trạng thái giữ nguyên. Sự bổ sung này làm cho nó như thể vấn đề không bao giờ tồn tại. có vẻ như kiểu thanh trạng thái được thay đổi khi đẩy lên ngăn xếp điều hướng của UIImagePickerControll. Để giải quyết vấn đề hoàn toàn, tôi không phải viết các phần mở rộng hoặc lớp con UIImagePickerControll. Tất cả những gì bạn cần làm là đặt đại biểu và đặt kiểu thanh trạng thái giữ nguyên. Sự bổ sung này làm cho nó như thể vấn đề không bao giờ tồn tại. có vẻ như kiểu thanh trạng thái được thay đổi khi đẩy lên ngăn xếp điều hướng của UIImagePickerControll. Để giải quyết vấn đề hoàn toàn, tôi không phải viết các phần mở rộng hoặc lớp con UIImagePickerControll. Tất cả những gì bạn cần làm là đặt đại biểu và đặt kiểu thanh trạng thái giữ nguyên. Sự bổ sung này làm cho nó như thể vấn đề không bao giờ tồn tại.
let pickerController = UIImagePickerController()
pickerController.delegate = self
func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) {
UIApplication.sharedApplication().setStatusBarStyle(.LightContent, animated: false)
}