iOS 13:关闭导航项上的UISearchController会导致tintColor恢复为默认值

bubuxu

我在导航项上使用UISearchController(导航栏已设置为使用barTintColor和tintColor)。取消搜索控制器后(点击搜索栏的“取消”按钮),后退按钮的tintColor将恢复为默认值(蓝色)。

屏幕截图1:导航栏的tintColor是 .white 在此处输入图片说明

屏幕截图2:当UISearchController处于活动状态时: 在此处输入图片说明

屏幕截图3:关闭UISearchController时(通过点击“取消”),您会看到“后退”按钮的tintColor恢复为默认值(蓝色),而不是白色: 在此处输入图片说明

屏幕截图上的代码是:


/// View controller is embedded in a UINavigationController, the root view controller of the startup storyboard.
class ViewController: UIViewController {

  lazy var searchController: UISearchController = {
    let controller = UISearchController(searchResultsController: nil)
    controller.searchBar.tintColor = .white
    return controller
  }()

  override func viewDidLoad() {
    super.viewDidLoad()
    if let navigationBar = navigationController?.navigationBar {
      setupNavigationBar(navigationBar)
    }
    if #available(iOS 11.0, *) {
      navigationItem.searchController = searchController
    } else {
      navigationItem.titleView = searchController.searchBar
    }
  }

  func setupNavigationBar(
    _ navigationBar: UINavigationBar,
    barTintColor: UIColor = .red,
    tintColor: UIColor = .white,
    textColor: UIColor = .white,
    prefersLargeTitles: Bool = true,
    isTranslucent: Bool = false) {

    navigationBar.isTranslucent = isTranslucent
    navigationBar.barTintColor = barTintColor

    if #available(iOS 11.0, *) {
    } else {
      navigationBar.setBackgroundImage(UIImage(), for: .default)
    }
    navigationBar.shadowImage = UIImage()

    navigationBar.tintColor = tintColor
    navigationBar.titleTextAttributes = [
      .font: UIFont.preferredFont(forTextStyle: .headline),
      .foregroundColor: textColor
    ]

    if #available(iOS 11.0, *) {
      navigationBar.prefersLargeTitles = prefersLargeTitles
      navigationBar.largeTitleTextAttributes = [
        .font: UIFont.preferredFont(forTextStyle: .largeTitle),
        .foregroundColor: textColor
      ]
    }

    if #available(iOS 13.0, *) {
      let navBarAppearance = UINavigationBarAppearance()
      navBarAppearance.configureWithOpaqueBackground()
      navBarAppearance.titleTextAttributes = navigationBar.titleTextAttributes ?? [:]
      navBarAppearance.largeTitleTextAttributes = navigationBar.largeTitleTextAttributes ?? [:]
      navBarAppearance.backgroundColor = barTintColor
      navBarAppearance.shadowColor = barTintColor
      navigationBar.standardAppearance = navBarAppearance
      navigationBar.scrollEdgeAppearance = navBarAppearance
    }

  }

}

马吕斯·卡泽姆卡蒂斯

我有同样的问题。尝试了所有修复程序。结果是这绝对是iOS 13的错误,因为即使是类似Notes的系统应用程序也一样。希望苹果能在下一个iOS更新中修复它。

波纹管是Notes应用程序的屏幕截图。

在点击搜索栏中的取消按钮之前

第1步

点击取消后

第2步

更新。iOS 13.2已发布,并且此错误似乎已修复✅

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在iOS 8上旋转后,UIPopoverController backgroundColor恢复为默认值

来自分类Dev

iOS int类型默认值问题

来自分类Dev

在什么情况下,iOS上的坐标空间是默认值(未翻转)?

来自分类Dev

透明导航栏iOS 13

来自分类Dev

iOS 8.2 Settings.bundle默认值

来自分类Dev

UISearchController iOS11 中的导航

来自分类常见问题

如何关闭UISearchController?(iOS 8及更高版本)

来自分类Dev

在iOS上编译iOS应用

来自分类Dev

在iOS上编译iOS应用

来自分类Dev

当NavigationController设置为false时,iOS导航栏tintColor不会变成白色

来自分类Dev

在iOS Swift中更改导航栏项的alpha值

来自分类Dev

在iOS Swift中更改导航栏项的alpha值

来自分类Dev

在iOS 7上以纵向裁剪图像会导致方向错误

来自分类Dev

UISearchController未在iOS8上显示

来自分类Dev

iOS上的UISearchController不调用cellForRowAtIndexPath

来自分类Dev

试图使iOS 13项目与iOS 12兼容

来自分类Dev

Firebase iOS 恢复密码

来自分类Dev

iOS-需要iOS 13+

来自分类Dev

iOS标签栏项导致Twitter

来自分类Dev

ios导航堆栈操作

来自分类Dev

ios导航栏用法

来自分类Dev

iOS App导航

来自分类Dev

导航器IOS问题

来自分类Dev

iOS 13替代“ setAnimationCurve”

来自分类Dev

iOS的ProgressBar 13

来自分类Dev

SRWebsocket关闭连接ios

来自分类Dev

关闭 iOS 后退

来自分类Dev

默认iOS后退按钮

来自分类Dev

Swift2 iOS-注销当前用户并创建新用户会保留新用户的旧用户默认值