scopeButtonTitles не будет отвечать

Я наткнулся на своего рода глюк. Когда я загружаю это представление в первый раз, все в порядке:

Если я перейду к следующему виду, мой UINavigationBar выглядит так:

Если я нажму сейчас, я не могу нажать scopeButton который отображается на первом изображении.

Я знаю, если я удалю UISearchBar(второе изображение), я смогу нажать scopeButtons (первое изображение).

Это мой код для первого изображения:

var searchBar = UISearchBar()

override func viewDidLoad() {

    secondContainerView.isHidden = true
    searchBar.delegate = self
    searchBar.placeholder = "Search"

    searchBar.scopeButtonTitles = ["0", "1"]
    searchBar.tintColor = UIColor.white
    searchBar.barTintColor =  UIColor(red: 105/255, green: 185/255, 
    blue: 114/255, alpha: 1.00)
    navigationItem.titleView = searchBar




}

Это мой код для второго изображения:

var searchBar = UISearchBar()

override func viewDidLoad() {

    searchBar.delegate = self
    searchBar.placeholder = "Search"
    navigationItem.titleView = searchBar

}

Я понял, что если я делаю это, это работает:

override func viewWillDisappear(_ animated: Bool) {
    searchBar.removeFromSuperview()
}

К сожалению, это создает еще одну проблему, когда я делаю swipeGesture чтобы вернуться и остаться в текущем представлении, UISearchBar ушел

Изменить: если я коснусь кнопки назад scopItems не будет отвечать, но на пальце, это работает:

 override func viewWillAppear(_ animated: Bool) {
        navigationItem.titleView = searchBar

    }

    override func viewWillDisappear(_ animated: Bool) {
        navigationItem.titleView = nil
    }

    override func viewDidAppear(_ animated: Bool) {
        navigationItem.titleView = searchBar


    }

0 ответов

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