iOS 11 prefersLargeTitles странный переход

поэтому у меня странная проблема с новыми большими названиями в iOS 11. Вместо того, чтобы я пытался плохо и смущенно объяснить проблему, вот 10-секундная запись на экране того, что происходит:

экранная запись вопроса на YouTube

Как вы можете видеть есть странная черная полоса, которая появляется при переходе между контроллером представление

navigationItem.largeTitleDisplayMode = .never

и тот, который установлен в .always

спасибо вперед!

2 ответов


перед переходом установите следующее:

self.navigationController?.view.backgroundColor = .white

Как сказал Пранав, проблема здесь заключается в цвете фона представления навигационного контроллера, однако изменение этого с контроллера дочернего представления не является идеальным способом сделать это.

вместо этого лучшим способом является подкласс UINavigationController и в viewDidLoad() установить

override func viewDidLoad()
{
  super.viewDidLoad()
  view.backgroundColor = .white
}

затем просто используйте свой пользовательский подкласс, а не стандартный UINavigationController. Таким образом, этот код нужен только в одном месте.