UINavigationController
があり、デフォルト値は_navigationBar.prefersLargeTitles = true
_です。
false
をPush
に変更すると、新しいシーンにDetailsViewController
を呼び出すことができます(viewWillDisappear
)に変更します。
_override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
navigationController?.navigationBar.prefersLargeTitles = false
}
_
現在DetailsViewController
では、willMove(to parent:)
を使用しています。
_override func willMove(toParent parent: UIViewController?) {
navigationController?.navigationBar.prefersLargeTitles = true
}
_
大きなタイトルに戻す。
添付されているスナップショットを観察する方法iOS 13方法iOS 12iOS 12が正しい動作であることを考慮して、それを行っています。
iOS 13:
iOS 12:
あなたがしていることはいつも間違っていました。ナビゲーションバーのprefersLargeTitles
をtrue
に1回設定し、再度タッチしないでください。
表示される大きなタイトルについて各ビューコントローラーが行うことを変更する方法は、そのビューコントローラーが独自のnavigationItem
を(viewDidLoad
に)設定して、必要なlargeTitleDisplayMode
を設定することです。したがって、最初のv.c. .always
と2番目は.never
すべてがスムーズになります。
同じ問題があり、2番目のViewControllerのストーリーボードにNavigationItemを配置する必要がありました。私のNavigationItemはセグエによって自動的に作成されていて、ビューが表示される前にviewDidLoad()
のprefersLargeTitle
の作成が完了していませんでした。 NavigationItemをストーリーボードに追加すると、この問題が修正され、ストーリーボードのプロパティメニューでprefersLargeTitle
を設定できるようになりました。
私の場合、この問題は、UITabBarController
の子であるビューコントローラへのセグエ中に発生していました。子ビューコントローラでlargeTitleDisplayMode
を設定しても、このバグを修正するには不十分でした。
ナビゲーション項目をUITabBarControllerシーンに追加し、largeTitleDisplayMode
を.never
として設定することで問題を解決しました。