Sau khi đọc tất cả các đề xuất và thử một vài điều, tôi có thể làm cho nó hoạt động cho các trình điều khiển chế độ xem cụ thể bằng các bước sau:
Bước đầu tiên:
Mở thông tin của bạn.plist và chèn một khóa mới có tên " Xem sự xuất hiện của thanh trạng thái dựa trên bộ điều khiển " thành NO
Bước thứ hai (Chỉ cần giải thích, không cần thực hiện điều này):
Thông thường, chúng tôi đặt mã sau vào ứng dụng (phương thức _: didFinishLaunchingWithOptions :) của AppDelegate,
Swift 2
UIApplication.sharedApplication().statusBarStyle = .LightContent
Swift 3
UIApplication.shared.statusBarStyle = .lightContent
nhưng điều đó ảnh hưởng đến statusBarStyle
tất cả các ViewControllers.
Vì vậy, làm thế nào để làm việc này cho ViewControllers cụ thể - Bước cuối cùng:
Mở tệp điều khiển khung nhìn nơi bạn muốn thay đổi statusBarStyle
và đặt đoạn mã sau vào viewWillAppear()
,
Swift 2
UIApplication.sharedApplication().statusBarStyle = .LightContent
Swift 3
UIApplication.shared.statusBarStyle = .lightContent
Ngoài ra, thực hiện viewWillDisappear()
phương thức cho viewContoder cụ thể đó và đặt các dòng mã sau đây,
Swift 2
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.Default
}
Swift 3
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.shared.statusBarStyle = UIStatusBarStyle.default
}
Bước này trước tiên sẽ thay đổi trình điều khiển statusBarStyle
khung nhìn cụ thể và sau đó thay đổi trở lại default
khi trình điều khiển khung nhìn cụ thể biến mất. Không thực hiện viewWillDisappear()
sẽ thay đổi statusBarStyle
vĩnh viễn thành giá trị được xác định mới củaUIStatusBarStyle.LightContent
Status bar is initially hidden = YES
trong tệp info.plist, "Xem thanh trạng thái dựa trên bộ điều khiển xuất hiện = NO" sẽ khiến thanh trạng thái bị ẩn.