Большой заголовок к маленькому заголовку переключателя в панели навигации не гладкий iOS 13, липкий - PullRequest
4 голосов
/ 09 октября 2019

У меня есть 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 12 делает это, считая iOS 12 правильным поведением.

iOS 13 :

iOS 13

iOS 12 :

iOS 12

1 Ответ

6 голосов
/ 12 октября 2019

То, что вы делаете, всегда было неправильно. Вы должны установить prefersLargeTitles на true один раз для навигационной панели и никогда больше не трогать ее.

Способ изменить то, что каждый контроллер представления делает с большими заголовками, так как кажется, что этот контроллер представления устанавливает свой собственныйnavigationItemviewDidLoad), чтобы получить желаемое largeTitleDisplayMode. Так что если первый vc имеет .always, а второй имеет .never, все будет гладко.

...