如何从嵌套的VC中正确执行UISearchBar的实例化

时间:2019-04-12 21:00:29

标签: swift uisearchbar

我将第一个VC作为“ homeController”,它具有UISearchBar的实例并实现其委托(UISearchBarDelegate),并且这样做将实例化第二个VC,即“ searchController”并将其委托也存在于UISearchBar的另一个实例上,我需要修复该冗余。我使用homeController UISearchBarDelegate只是因为它可以实例化“ searchController”。

1:我使用的方法是在'homeController'上实例化searchBarShouldBeginEditing的方法,也许是错误的,因为第一秒正确加载了颜色,然后变为黑色。

2:searchBarTextDidBeginEditing循环本身。 (从我想要的颜色再到我想要的颜色)。 -(无限循环)

我一次只能使用一个,也不能使用searchBarShouldBeginEditing或searchBarTextDidBeginEditing。我想使用searchBarTextDidBeginEditing的行为,但它会像疯了似的重新加载。或searchBarShouldBeginEditing的第一秒,并知道应用程序在黑屏状态下的位置,因为绝对不是我设置的默认颜色,因为它更改了我想要的第一秒和第二秒的颜色它是黑色的。顺便说一句,该应用程序未使用“ searchController”中的UISearchBar,而是使用了“ homeController”中的UISearchBar。推荐什么?

就在那儿,我得到了两分。

1:我应该在执行操作时保持逻辑分离还是应该混合使用?

1.1:home和search具有不同的单元格,这就是为什么我不将它们混合在一起的原因。如何在'searchController'上使用UISearchBar的实例?

2:如果我将其分开,是否应该从“ searchController”中使用UISearchBar还是删除该实例而仅使用“ 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()
    }

0 个答案:

没有答案