ชื่อเรื่องใหญ่เป็นสวิตช์ชื่อเรื่องขนาดเล็กในแถบนำทางไม่ราบรื่น iOS 13 เหนียว


11

ฉันมีกับค่าเริ่มต้นของมันUINavigationControllernavigationBar.prefersLargeTitles = true

ฉันกำลังเปลี่ยนที่falseเมื่อฉันpush เป็นฉากใหม่ช่วยให้เรียกว่า ( DetailsViewController) viewWillDisappearโดยการเปลี่ยนมันลงไป

override func viewWillDisappear(_ animated: Bool) {
   super.viewWillDisappear(animated)
   navigationController?.navigationBar.prefersLargeTitles = false
}

ตอนนี้ในฉันใช้DetailsViewControllerwillMove(to parent:)

override func willMove(toParent parent: UIViewController?) {
        navigationController?.navigationBar.prefersLargeTitles = true
}

หากต้องการเปลี่ยนกลับเป็นชื่อใหญ่

สังเกตภาพรวมที่แนบมาของวิธีที่iOS 13ทำกับวิธีที่iOS 12ทำอยู่การพิจารณาว่าiOS 12นั้นเป็นพฤติกรรมที่ถูกต้อง

iOS 13 :

iOS 13

iOS 12 :

iOS 12


คุณไม่ต้องเปลี่ยน.prefersLargeTitlesเลยเมื่อกดตัวควบคุมมุมมองรายละเอียดไปที่กองนำทางมันจะใช้หัวเรื่องเล็ก ๆ โดยอัตโนมัติจากนั้นกลับไปที่จุดใหญ่เมื่อคุณกลับไปที่ตัวควบคุมมุมมองรากเท่าที่ฉันรู้
henrik-dmg

@ henrik-dmg ฉันไม่แน่ใจว่ามันเป็นอย่างนั้นมาก่อน แต่ไม่ใช่ทุกอย่างจะไปอีกครั้งถ้าฉันทำอย่างนั้นฉันได้ลองแล้ว
Mohmmad S

1
largeTitleDisplayModeถึง . automaticและคุณควรได้รับการเปลี่ยนแปลงที่ต้องการ
แฮร์รี่ J

@HarryJ อยู่ที่ไหน
Mohmmad S

ภายใน viewDidLoad หรือตัวควบคุมการนำทางของคุณnavigationController?.navigationItem.largeTitleDisplayMode = .automatic
Harry J

คำตอบ:


21

สิ่งที่คุณกำลังทำผิดอยู่เสมอ คุณควรตั้งค่าprefersLargeTitlesเป็นtrueครั้งเดียวสำหรับแถบนำทางและห้ามแตะอีกครั้ง

วิธีการเปลี่ยนแปลงสิ่งที่แต่ละควบคุมดูไม่เกี่ยวกับชื่อที่มีขนาดใหญ่ตามที่ปรากฏเป็นที่ควบคุมดูชุดของตัวเองnavigationItem(ในของมันviewDidLoad) largeTitleDisplayModeที่จะมีที่ต้องการ ดังนั้นหาก vc แรกมี.alwaysและที่สองมี.neverทุกอย่างจะราบรื่น


ช่างเป็นคำตอบที่ดี! ไม่เคยรู้ว่าเป็นวิธีที่จะมีชื่อเรื่องใหญ่และเล็กในเวลาเดียวกัน!
Kacper Cz

0

ฉันมีปัญหาเดียวกันและต้องวาง NavigationItem ไว้บนกระดานเรื่องราวของ ViewController ที่สอง NavigationItem ของฉันถูกสร้างขึ้นโดยอัตโนมัติโดยซีจีเอสและprefersLargeTitleในนั้นviewDidLoad()ยังไม่เสร็จสิ้นก่อนที่จะมีการดู การเพิ่ม NavigationItem ไปยังกระดานเรื่องราวแก้ไขปัญหานี้และอนุญาตให้ฉันตั้งค่าprefersLargeTitleในเมนูคุณสมบัติของกระดานเรื่องราว


0

UITabBarControllerในกรณีของปัญหานี้เกิดขึ้นในระหว่างการทำต่อไปยังตัวควบคุมมุมมองซึ่งเป็นลูกของหนึ่ง การตั้งค่าlargeTitleDisplayModeตัวควบคุมมุมมองลูกไม่เพียงพอที่จะแก้ไขข้อบกพร่องนี้

ฉันแก้ไขปัญหาด้วยการเพิ่มรายการนำทางไปยังฉาก UITabBarController และการตั้งค่าlargeTitleDisplayModeตามที่.neverมี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.