Ios 当切换回搜索栏处于活动状态时,选项卡栏视图变为空白

Ios 当切换回搜索栏处于活动状态时,选项卡栏视图变为空白,ios,swift,uitabbarcontroller,uisearchcontroller,Ios,Swift,Uitabbarcontroller,Uisearchcontroller,更新2: 因为人们仍然在关注这个问题:我意识到在一个实际的、孤立的iOS设备上复制这个bug是不可能的。当您显示搜索控制器时,iOS也会显示一个键盘,它覆盖了选项卡栏。要切换选项卡,必须关闭键盘,这也将关闭搜索控制器 我之所以说“隔离”是因为我不知道你是否可以用蓝牙键盘复制它,并且没有一个可以尝试。iOS键盘可能未连接外部键盘 更新: 我在视图1中添加了一个ViewWillEnglish覆盖,并发现了一些有趣的结果: 当搜索栏不存在时,切换选项卡会在加载下一个视图之前关闭视图。但是,当搜索栏出

更新2:

因为人们仍然在关注这个问题:我意识到在一个实际的、孤立的iOS设备上复制这个bug是不可能的。当您显示搜索控制器时,iOS也会显示一个键盘,它覆盖了选项卡栏。要切换选项卡,必须关闭键盘,这也将关闭搜索控制器

我之所以说“隔离”是因为我不知道你是否可以用蓝牙键盘复制它,并且没有一个可以尝试。iOS键盘可能未连接外部键盘


更新:

我在视图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