我正在使用多个UISearchBar作为嵌入在UITabBarController中的UINavigationController中的titleView。当我使用后退按钮按下和弹出视图控制器时,这一切都很好。但是,当我使用交互式pop手势弹出时,搜索栏就开始消失。
我不知道怎么解决这个问题。
我尝试过在titleView和viewDidAppear中设置navigationItem的viewWillAppear,但两者都没有工作。
搜索栏接受输入和触摸,它只是不可见。
以下是viewWillAppear代码:
override func viewWillAppear(_ animated: Bool) {
print("view will appear from base search")
super.viewWillAppear(animated)
print(self.searchController.searchBar)
self.definesPresentationContext = true
self.navigationItem.titleView = nil
self.navigationItem.titleView = self.searchController.searchBar
self.navigationController?.setNavigationBarHidden(false, animated: true)
}下面是一些发生了什么的照片:
第一张照片是首页。
第二张照片是用户在搜索查询中输入的图片。
第三张照片是用户执行交互式pop手势后返回的时候。
第四张照片显示,即使搜索栏不可见,仍然可以键入。
第五张照片显示,您仍然可以点击搜索栏旁边的“取消”按钮,尽管这是不可见的。
发布于 2019-06-04 22:42:36
我通过设置:self.navigationItem.searchController = searchController修复了这个问题
而不是设置:
self.navigationItem.titleView = searchController.searchBar
https://stackoverflow.com/questions/56451903
复制相似问题