ios – 当切换回搜索栏激活时,标签栏视图变为空白

更新2:

由于人们仍然在关注这个问题:知道我意识到在一个实际的,孤立的iOS设备上复制这个bug是不可能的.当您呈现搜索控制器时,iOS也会显示一个键盘,其中包含标签栏.要切换标签,您必须关闭键盘,这也将关闭搜索控制器.

我说“隔离”的原因是因为我不知道你是否可以用蓝牙键盘复制这个并且没有人试试. iOS键盘可能无法连接外接键盘

更新:

我向View 1添加了一个viewWillDisappear覆盖,并发现了一些有趣的结果:

当搜索栏不存在时,切换选项卡会在加载下一个视图之前关闭视图.但是,当存在搜索栏时,在加载下一个视图之前不会关闭视图

我在根目录下有一个标签栏控制器,它有2个标签.每个都进入导航控制器,将设备带到视图.这是一个粗略的图表:

/-> Navigation Controller -> View 1
tab bar controller 
                   -> Navigation Controller -> View 2

这通常很好.但是,View 1有一个UISearchController.问题是,如果单击搜索按钮,则会显示搜索控制器.如果然后单击选项卡栏中的“查看2”并切换回“视图1”,则搜索控制器仍然存在且视图为黑色.

我目前的hacky“修复”是在搜索栏显而易见时禁用标签栏,如果用户选择“取消”则重新启用它.这有两个问题:

>这是jank;用户应该可以随时切换标签
>它仅在用户点击取消时重新启用,而不是仅仅点击搜索

我怎样才能解决这个问题?这是我正在谈论的图片

解决方法

我通过以下答案解决了这个问题:
UISearchController causes black screen Swift 2.0

我在viewDidLoad中实现了它:

self.definesPresentationContext = true

    searchController.searchResultsUpdater = self
    searchController.searchBar.delegate = self
    searchController.dimsBackgroundDuringPresentation = false
    searchController.definesPresentationContext = true

这几乎解决了我的问题.然后我遇到了另一个问题,试图在didSelectRowAt上离开,这在以前从来就不是问题.我通过首先弹出UISearchController,然后正常执行segue来解决这个问题:

_ = self.navigationController?.popViewController(animated:true)

以上是来客网为你收集整理的ios – 当切换回搜索栏激活时,标签栏视图变为空白全部内容,希望文章能够帮你解决ios – 当切换回搜索栏激活时,标签栏视图变为空白所遇到的程序开发问题。

如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。