Как правильно создать экземпляр UISearchBar из вложенного VC - PullRequest
1 голос
/ 13 апреля 2019

У меня firstVC в качестве homeController, который имеет экземпляр UISearchBar и реализует его делегат (UISearchBarDelegate), и при этом создается экземпляр secondVC, который называется searchController, и его делегат также находится в другом экземпляре UISearchBar. нужно исправить эту избыточность. Я использую homeController UISearchBarDelegate только потому, что он позволяет мне создавать экземпляр 'searchController'.

1: я использую метод для экземпляра searchBarShouldBeginEditing для 'homeController', и, возможно, он неправильный, потому что первая секунда правильно загружает цвет, а затем меняется на черный.

2: сам цикл searchBarTextDidBeginEditing. (от цвета, который я хочу, чтобы снова цвет, который я хочу). - (бесконечный цикл)

Я могу использовать только один за раз или searchBarShouldBeginEditing или searchBarTextDidBeginEditing. Я хотел бы использовать поведение searchBarTextDidBeginEditing, но он перезагружается как сумасшедший. Или в первую секунду searchBarShouldBeginEditing и узнайте, где находится приложение в состоянии этого черного экрана, потому что определенно это не цвет по умолчанию, который я установил, потому что он меняет нужный мне цвет в первую секунду и во вторую секунду оно черное. Кстати, приложение не использует UISearchBar из 'searchController', оно использует UISearchBar из 'homeController'. Что рекомендуется?

Просто тут я получил два очка.

1: Должен ли я отделить логику, как делаю, или смешать ее?

1.1: дом и поиск имеют разные ячейки, поэтому я не смешиваю их. Как я могу использовать экземпляр UISearchBar для 'searchController'?

2: Если я буду держать его отдельно, я должен использовать UISearchBar из 'searchController' или удалить этот экземпляр и просто использовать 'homeController'?

как правильно реализовать или создать экземпляр UISearchBar с текущим сценарием?

func searchBarShouldBeginEditing(_ searchBar: UISearchBar) -> Bool {
        handleShowSearchVC()
        return false
    }

    @objc func handleShowSearchVC() {
        let modalUserSearchController = UserSearchController(collectionViewLayout: UICollectionViewFlowLayout())
        modalUserSearchController.modalPresentationStyle = .overCurrentContext
navigationController?.pushViewController(modalUserSearchController, animated: true)
    }

    func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {
        handleShowSearchVC()
    }
...