[ios] 내비게이션 바에서 작은 제목으로의 큰 제목 전환이 iOS 13에서 원활하지 않음
나는이 UINavigationController
그것의의 기본적 가치를 navigationBar.prefersLargeTitles = true
.
I가 그 전환하고 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
}
큰 타이틀로 다시 전환합니다.
방법 첨부 된 스냅 샷 관찰 아이폰 OS (13) 방법으로 그 일을 아이폰 OS (12)가 고려를하고있는 아이폰 OS (12)가 올바른 동작입니다.
iOS 13 :
iOS 12 :
답변
당신이하는 일은 항상 잘못되었습니다. 탐색 표시 줄 prefersLargeTitles
을 true
한 번으로 설정 하고 다시 터치하지 않아야합니다.
이 나타나는 각 뷰 컨트롤러는 큰 제목에 대해 무엇을 변경하는 방법은 해당 뷰 컨트롤러 자체를 설정하는 것입니다 navigationItem
(그에서 viewDidLoad
) 원하는 것으로 largeTitleDisplayMode
. 따라서 첫 번째 vc가 .always
있고 두 번째 vc가 있으면 .never
모든 것이 부드럽게됩니다.
답변
나는 같은 문제가 있었고 두 번째 ViewController의 스토리 보드에 NavigationItem을 배치해야했습니다. 내 NavigationItem는 SEGUE에 의해 자동으로 생성되고 있던 그 prefersLargeTitle
에서는 viewDidLoad()
보기가 등장하기 전에 작성이 완료되지 않았습니다. 스토리 보드에 NavigationItem을 추가하면이 문제가 해결 prefersLargeTitle
되어 스토리 보드의 속성 메뉴에서 를 설정할 수있었습니다 .
답변
필자의 경우이 문제는의 자식 인 뷰 컨트롤러에 대한 segue 동안 발생했습니다 UITabBarController
. largeTitleDisplayMode
자식 뷰 컨트롤러 설정 이이 버그를 수정하기에 충분하지 않았습니다.
나는 UITabBarController가 현장에 탐색 항목을 추가하고 설정하여 문제를 해결 한 largeTitleDisplayMode
로 .never
가.