У меня есть эта шляпа NavigationController
, для которой NavigationBar
включены большие заголовки.Корень ViewController
имеет SearchController
, а hidesSearchBarWhenScrolling имеет значение True в ViewController
NavigationItem
, поскольку я не хочу, чтобы SearchBar
был всегда видимым.У ViewController
есть TableView
, и когда вы нажмете на один из его элементов, новый экземпляр того же ViewController
будет помещен в стек навигации с помощью перехода к раскадровке.Однако, глядя на переход между текущим и новым ViewController
, можно заметить, что анимация выглядит неправильно: как только новый ViewController
перемещается в SearchBar
, он становится пустым, просто показывая его фон,Когда новый ViewController
станет полностью видимым, SearchBar
исчезнет без какой-либо анимации.
Вот как я добавляю SearchController
(здесь ничего необычного):
class MyViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let searchController = UISearchController(searchResultsController: nil)
navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = true
}
}
И так выглядит при переходе от «Один» к «Два»:
UISearchController / UINavigationBar показывает неработающую анимацию при использовании в UINavigationController
Есть ли способ, чтобы сделать это выглядеть лучше?Конечно, в новом ViewController
SearchBar
изначально не должен быть виден, поэтому он должен как-то исчезнуть.Но я думаю, что SearchBar
на старом ViewController
, возможно, следует каким-то образом исчезнуть, а не оставаться там, а затем внезапно скрываться, когда переход к новому ViewController
закончен.Надеюсь, я тут что-то не так делаю ...
Спасибо и веселого вам всем,
Питер