หลังจากอ่านข้อเสนอแนะทั้งหมดและลองทำบางสิ่งฉันสามารถใช้วิธีนี้กับผู้ควบคุมการดูที่เฉพาะเจาะจงโดยใช้ขั้นตอนต่อไปนี้:
ขั้นแรก:
เปิด info.plist ของคุณและใส่คีย์ใหม่ชื่อ " ดูลักษณะแถบสถานะที่ใช้ควบคุม " เป็นNO
ขั้นตอนที่สอง (เพียงคำอธิบายไม่จำเป็นต้องใช้สิ่งนี้):
โดยปกติเราใส่รหัสต่อไปนี้ในแอปพลิเคชัน (_: didFinishLaunchingWithOptions :) วิธีของ AppDelegate
สวิฟท์ 2
UIApplication.sharedApplication().statusBarStyle = .LightContent
สวิฟท์ 3
UIApplication.shared.statusBarStyle = .lightContent
แต่นั่นมีผลstatusBarStyle
กับ ViewControllers ทั้งหมด
ดังนั้นวิธีการทำให้การทำงานนี้สำหรับ ViewControllers เฉพาะ - ขั้นตอนสุดท้าย:
เปิดไฟล์ viewcontroller ที่คุณต้องการเปลี่ยนstatusBarStyle
และใส่รหัสต่อไปนี้viewWillAppear()
,
สวิฟท์ 2
UIApplication.sharedApplication().statusBarStyle = .LightContent
สวิฟท์ 3
UIApplication.shared.statusBarStyle = .lightContent
นอกจากนี้ให้ใช้viewWillDisappear()
วิธีการสำหรับ viewController เฉพาะนั้นและวางบรรทัดของรหัสต่อไปนี้
สวิฟท์ 2
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.Default
}
สวิฟท์ 3
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.shared.statusBarStyle = UIStatusBarStyle.default
}
ขั้นตอนนี้จะเปลี่ยนstatusBarStyle
สำหรับ viewcontroller เฉพาะก่อนแล้วจึงเปลี่ยนกลับไปเป็นdefault
เมื่อ viewcontroller เฉพาะหายไป การไม่ใช้งานviewWillDisappear()
จะเปลี่ยนค่าstatusBarStyle
ถาวรเป็นค่าใหม่ที่กำหนดUIStatusBarStyle.LightContent
Status bar is initially hidden = YES
ในไฟล์ info.plist "การดูลักษณะแถบสถานะตามตัวควบคุม = NO" จะทำให้แถบสถานะถูกซ่อน