使用多个搜索栏和交互式弹出手势时导航项视图消失
Navigation item views disappearing when using multiple search bars and interactive pop gesture
我使用多个 UISearchBar
作为 titleView
中的 UINavigationController
嵌入到 UITabBarController
中。当我使用后退按钮按下和弹出视图控制器时,这一切都很好。但是,当我使用交互式弹出手势弹出时,搜索栏开始消失。
我不确定如何解决这个问题。
我试过在 viewWillAppear
和 viewDidAppear
中设置 navigationItem
的 titleView
,但都没有用。
搜索栏接受输入和触摸,只是不可见。
这是 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)
}
这里有一些发生的照片:
第一张照片是首页。
第二张照片是用户输入搜索查询。
第三张照片是用户returns执行交互弹出手势后
第四张照片显示您仍然可以在搜索栏中输入内容,即使它不可见。
第五张照片显示您仍然可以点击搜索栏旁边的取消按钮,即使它不可见。
我通过设置解决了这个问题:self.navigationItem.searchController = searchController
而不是设置:
self.navigationItem.titleView = searchController.searchBar
我使用多个 UISearchBar
作为 titleView
中的 UINavigationController
嵌入到 UITabBarController
中。当我使用后退按钮按下和弹出视图控制器时,这一切都很好。但是,当我使用交互式弹出手势弹出时,搜索栏开始消失。
我不确定如何解决这个问题。
我试过在 viewWillAppear
和 viewDidAppear
中设置 navigationItem
的 titleView
,但都没有用。
搜索栏接受输入和触摸,只是不可见。
这是 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)
}
这里有一些发生的照片:
第一张照片是首页。
第二张照片是用户输入搜索查询。
第三张照片是用户returns执行交互弹出手势后
第四张照片显示您仍然可以在搜索栏中输入内容,即使它不可见。
第五张照片显示您仍然可以点击搜索栏旁边的取消按钮,即使它不可见。
我通过设置解决了这个问题:self.navigationItem.searchController = searchController
而不是设置:
self.navigationItem.titleView = searchController.searchBar