由于人们仍然在关注这个问题:知道我意识到在一个实际的,孤立的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“修复”是在搜索栏显而易见时禁用标签栏,如果用户选择“取消”则重新启用它.这有两个问题:
解决方法
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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。