使用多个搜索栏和交互式弹出手势时导航项目视图消失



我正在使用多个UISearchBar作为嵌入UITabBarController中的UINavigationControllertitleViews。当我使用后退按钮按下和弹出视图控制器时,这一切都很好。但是,当我使用交互式弹出手势弹出时,搜索栏开始消失。

我不确定如何解决这个问题。

我尝试在viewWillAppearviewDidAppear中设置navigationItemtitleView,但两者都不起作用。

搜索栏接受输入和触摸,只是不可见。

这是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)
}

以下是一些发生的事情的照片:

https://i.stack.imgur.com/E6Nh9.jpg

第一张照片是主页。

第二张照片是用户在搜索查询中键入的内容。

第三张照片是用户在执行交互式弹出手势后返回时。

第四张照片显示,即使搜索栏不可见,您仍然可以在搜索栏中键入内容。

第五张照片显示,即使搜索栏不可见,您仍然可以点击搜索栏旁边的取消按钮。

我通过设置来解决此问题:self.navigationItem.searchController = searchController

而不是设置:

self.navigationItem.titleView = searchController.searchBar

最新更新