我正在创建一个基于UINavigationController
的应用,并希望以iOS 12样式进行操作:具有大标题,并且SearchBar
内显示的NavigationBar
。
不幸的是,我有一个问题,就是SearchBar
会在下一个(或上一个)View Controller的动画启动后立即消失。动画制作完成后,搜索栏将再次可见。必须仔细观察才能看到效果,但是如果使用滑动手势回去,效果会非常好。
UISearchBar disappeares when animation between View Controller starts
为了在我的完整应用程序之外重现该问题,我创建了一个简单的小应用程序,其中以UINavigationController
作为开头的ViewController
和普通的ViewController
(仅带有“ 下一步”按钮)显示为RootViewController
。在NavigationItem
中将“大标题”设置为“自动”,在NavigationBar
上,“首选大标题”被设置为True。在视图控制器的viewDidLoad
中,我将UISearchController
的实例分配给NavigationItem
就像这样简单:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let searchController = UISearchController(searchResultsController: nil)
navigationItem.searchController = searchController
}
}
“下一步”按钮的周围View Controller带有“ 显示” Segue
,因此,我可以一遍又一遍地推送相同的View Controller进行测试。 / p>
我想要的行为与iOS 12 Files App中的行为相同:在那里,SearchBar
在NavigationBar
内保持静态,即使导航发生。
我已经花了一些时间寻找解决方案,但找不到真正的东西。
谢谢, 彼得