iOS 13 UIBarButtonItem在使用UISearchController时不可单击,并且UINavigationBars重叠

问题描述 投票:4回答:1

我有一个包含一些UIBarButtonItem按钮的导航栏和一个像这样连接的UISearchBar

var searchController: UISearchController!

override func viewDidLoad() {
    super.viewDidLoad()

    title = "Test"

    tableView.delegate = self
    tableView.dataSource = self

    searchController = UISearchController(searchResultsController: nil)
    navigationItem.searchController = searchController

    // This leads to the bug
    searchController.hidesNavigationBarDuringPresentation = false

    navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .action, target: self, action: #selector(leftTapped))
    navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .action, target: self, action: #selector(rightTapped))
}

场景:我点击搜索栏,然后点击取消。

  • 问题1:条形按钮没有反应不能触摸,除非我触摸屏幕的最外面的像素(仅在模拟器和鼠标单击时才可能。)]]

  • 问题2:当我按下另一个视图控制器时,导航项重叠]。

  • enter image description here

    [当我使用hidesNavigationBarDuringPresentation = true时,它的工作正常。


此问题出现在使用Xcode 11.0和11.1的带槽口和非带槽口的iPhone iOS 13.0和13.1上。

这是整个测试项目:https://github.com/fl034/HidesNavigationBarDuringPresentationTest


我已经提起雷达(您也应该提起诉讼,但也许你们中有些人已经解决了这个问题?


更新

:iOS 13.1.1中仍然存在错误

我有一个导航栏,其中包含一些UIBarButtonItem按钮和一个像这样的var searchController:UISearchController挂钩的UISearchBar!覆盖func viewDidLoad(){super.viewDidLoad()...

ios uinavigationcontroller uisearchcontroller ios13
1个回答
1
投票

视图调试器揭示了此错误的原因。导航栏的内容正在复制。这是显示搜索之前导航栏的外观:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.