Как исправить анимацию щелчка UISearchBar при переходе контроллеров представления?

Начиная с iOS 11 (и выше) я пытаюсь включить большие заголовки (с UISearchController). Один из моих экранов не имеет UITableView как первый ребенок в иерархии (а точнее UIPageViewController, это потому, что навигационная панель не свернута, потому что scrollView это не первый ребенок.. но из-за структуры не может.. во всяком случае, это не проблема).

Когда другой экран нажат (и этот экран имеет navigationItem "s largeTitleDisplayMode установлен в never) анимация перехода выглядит странно (UISearchBar закрыт от центра и не синхронизирован с анимацией навигационной панели).

Примечание: если выдвигаемый контроллер имеет largeTitleDisplayMode установлен в .automatic (или же always) переход в порядке.

Фон

Когда prefersLargeTitle включен, navigationItem "s searchController установлено, и первое представление иерархии не является табличным представлением (или я предполагаю, что потомок scrollView), навигационная панель показывает открытую панель поиска.

Варианты пробовал

Я пытался изменить translucent собственность UINavigationBar а также UISearchBar, Также установите UINavigationBar's 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
    }

}

0 ответов

Другие вопросы по тегам