gpt4 book ai didi

ios - 当切换回搜索栏处于事件状态时,选项卡栏 View 变为空白

转载 作者:IT王子 更新时间:2023-10-29 05:41:54 26 4
gpt4 key购买 nike

更新 2:

由于人们仍在关注这个问题:知道我意识到不可能在实际的、孤立的 iOS 设备上复制这个错误。当你展示搜索 Controller 时,iOS 也会展示一个键盘,它覆盖了标签栏。要切换标签页,您必须关闭键盘,这也会关闭搜索 Controller 。

我说“隔离”的原因是因为我不知道您是否可以使用蓝牙键盘复制它并且没有人可以尝试。连接外接键盘时可能不会显示 iOS 键盘


更新:

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

当搜索栏不存在时,切换选项卡确实会在加载下一个 View 之前关闭 View 。但是,当存在搜索栏时,在加载下一个 View 之前不会关闭 View


我在根目录下有一个标签栏 Controller ,它有 2 个标签。每个都转到导航 Controller ,将设备带到 View 。这是一个粗略的图表:

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

这正常工作。但是,View 1 有一个 UISearchController。错误在于,如果您单击搜索按钮,则会显示搜索 Controller 。如果您随后单击选项卡栏中的 View 2 并切换回 View 1,则搜索 Controller 仍然存在并且 View 为黑色。

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

  1. 这是垃圾;用户应该能够随时切换标签
  2. 只有在用户点击取消时它才会重新启用,如果他们只是点击退出搜索则不会

我该如何解决这个问题?这是我正在谈论的图片

enter image description here

enter image description here

enter image description here

enter image description here

最佳答案

我按照以下答案解决了这个问题: 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 处进行 segue,这在以前从来都不是问题。我通过首先弹出 UISearchController,然后正常执行 segue 来解决这个问题:

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

关于ios - 当切换回搜索栏处于事件状态时,选项卡栏 View 变为空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38836862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com