Начиная с iOS 11 (и выше) я пытаюсь включить большие заголовки (с UISearchController
).Один из моих экранов не имеет UITableView
как первый дочерний элемент в иерархии (а скорее UIPageViewController
, это потому, что навигационная панель не свернута, потому что scrollView
не первый дочерний элемент ... но из-за структуры структурыне могу .. во всяком случае, это не проблема).
Когда нажимается другой экран (и на этом экране navigationItem
s largeTitleDisplayMode
установлено never
), анимация перехода выглядит странно (UISearchBar
закрыт от центра и не синхронизирован с анимацией навигационной панели).
Примечание. Если для толкаемого контроллера largeTitleDisplayMode
установлено на .automatic
(или always
), переходв порядке.
Фон
Когда prefersLargeTitle
включен, navigationItem
s searchController
установлен, и первое представление иерархии не являетсяtableView (или, я думаю, scrollView потомок), панель навигации показывает панель поиска открытой.
Опции опробованы
Я попытался изменить свойство translucent
UINavigationBar
иUISearchBar
.Также установите UINavigationBar clipToBounds
.
Код
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
navigationController?.navigationBar.prefersLargeTitles = true
self.navigationItem.largeTitleDisplayMode = .always
navigationItem.searchController = UISearchController(searchResultsController: nil)
}
}
class SecondViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.largeTitleDisplayMode = .never
}
}