Ios 当切换回搜索栏处于活动状态时,选项卡栏视图变为空白
更新2: 因为人们仍然在关注这个问题:我意识到在一个实际的、孤立的iOS设备上复制这个bug是不可能的。当您显示搜索控制器时,iOS也会显示一个键盘,它覆盖了选项卡栏。要切换选项卡,必须关闭键盘,这也将关闭搜索控制器 我之所以说“隔离”是因为我不知道你是否可以用蓝牙键盘复制它,并且没有一个可以尝试。iOS键盘可能未连接外部键盘Ios 当切换回搜索栏处于活动状态时,选项卡栏视图变为空白,ios,swift,uitabbarcontroller,uisearchcontroller,Ios,Swift,Uitabbarcontroller,Uisearchcontroller,更新2: 因为人们仍然在关注这个问题:我意识到在一个实际的、孤立的iOS设备上复制这个bug是不可能的。当您显示搜索控制器时,iOS也会显示一个键盘,它覆盖了选项卡栏。要切换选项卡,必须关闭键盘,这也将关闭搜索控制器 我之所以说“隔离”是因为我不知道你是否可以用蓝牙键盘复制它,并且没有一个可以尝试。iOS键盘可能未连接外部键盘 更新: 我在视图1中添加了一个ViewWillEnglish覆盖,并发现了一些有趣的结果: 当搜索栏不存在时,切换选项卡会在加载下一个视图之前关闭视图。但是,当搜索栏出
更新: 我在视图1中添加了一个ViewWillEnglish覆盖,并发现了一些有趣的结果: 当搜索栏不存在时,切换选项卡会在加载下一个视图之前关闭视图。但是,当搜索栏出现时,在加载下一个视图之前,不会取消该视图
我在根目录下有一个选项卡栏控制器,它有两个选项卡。每一个都指向一个导航控制器,该控制器将设备带到视图中。下面是一个粗略的图表:
/-> Navigation Controller -> View 1
tab bar controller
\-> Navigation Controller -> View 2
这工作正常。但是,视图1有一个UISearchController。错误在于,如果单击搜索按钮,将显示搜索控制器。如果随后单击选项卡栏中的视图2并切换回视图1,则搜索控制器仍在,视图为黑色
我目前的黑客“修复”是禁用标签栏,而搜索栏是明显的,并重新启用它,如果用户选择“取消”。这有两个问题:
我通过以下答案解决了这个问题: 我在
viewDidLoad
中这样实现了它:
self.definesPresentationContext = true
searchController.searchResultsUpdater = self
searchController.searchBar.delegate = self
searchController.dimsBackgroundDuringPresentation = false
searchController.definesPresentationContext = true
这基本上解决了我的问题。然后,我遇到了另一个问题,那就是尝试在didSelectRowAt
上分离,这以前从来都不是问题。我通过首先弹出UISearchController,然后正常执行一个序列来解决这个问题:
\u=self.navigationController?.popViewController(动画:true)
在viewdiload
方法中写入:self.definesPresentationContext=true