【问题标题】:Navigation bar gets blocked after pressing Cancel in UISearchController在 UISearchController 中按取消后导航栏被阻止
【发布时间】:2019-09-16 12:07:04
【问题描述】:

我正在为 iOS 13 准备应用程序,但导航栏中的搜索控制器出现错误。如何解决导航栏故障?

let search = UISearchController(searchResultsController: nil)

search.dimsBackgroundDuringPresentation = false
search.searchResultsUpdater = self
search.hidesNavigationBarDuringPresentation = false
self.definesPresentationContext = true
search.searchBar.isTranslucent = false

self.navigationItem.searchController = search

self.navigationItem.hidesSearchBarWhenScrolling = true

按下取消,导航栏项目变得不可触摸。 推送视图控制器会导致导航栏项重叠。

我在 git https://github.com/eKroman/TESTsearchBar 上创建了测试项目

使用从 Xcode 11 从 beta 7(可能是较旧的 beta)到 Xcode 11 GM seed 2 的 iOS 13 beta(在 iPad 上测试)出现错误。 不会出现在模拟器上。

【问题讨论】:

  • 当你点击取消按钮时你在做什么,你正在调用什么动作方法?
  • 无操作,未处理取消事件
  • 我也有同样的问题。它适用于 iOS 13.0(最终版本),但在 iOS13.1 Beta4 中中断
  • iOS 13.2 公测版似乎解决了这个问题

标签: swift ios13 ipados13


【解决方案1】:

我遇到了同样的问题,如果我取消 searchBar 并更改 navigationItem.title 那么我有一个双标题?。就像导航栏的幽灵层停留在导航控制器中一样。

这就是我修复它的方法:

searchController.hidesNavigationBarDuringPresentation = true

在 Apple 解决此问题之前最好使用它。

我还注意到后退按钮切换为默认颜色(蓝色),好像导航栏 TintColor 已重置。

配置: - Xcode 11.0 (11A420a) - iOS 13.1 (17A5844a)

【讨论】:

  • 我有同样的问题(即 SearchController 取消按钮弄乱了 BackButton 默认颜色)。但是 `navigationItem.searchController?.hidesNavigationBarDuringPresentation = true` 没有帮助!
【解决方案2】:

对于在@CoachThys 的回答中将后退按钮重置为默认颜色(蓝色),我设法通过下面的代码解决它。

if #available(iOS 13.0, *) {
    let appearance = UINavigationBarAppearance()
    /* .. set other things on appearances */
    appearance.buttonAppearance.normal.titleTextAttributes = [.foregroundColor: color]

    standardAppearance = appearance
    compactAppearance = appearance
    scrollEdgeAppearance = appearance
}

但是,我找不到解决仍然短暂重置为蓝色的背面指示器图像的方法。

【讨论】:

    【解决方案3】:

    添加带有图像的自定义后退按钮将修复新错误。对我来说效果很好。

            let negativeSpacer = UIBarButtonItem(barButtonSystemItem: .fixedSpace, target: nil, action: nil)
            negativeSpacer.width = -8
            self.navigationItem.leftBarButtonItems = [negativeSpacer, leftBarButtonItem]
    

    【讨论】:

      猜你喜欢
      • 2014-12-05
      • 2019-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多