У меня есть панель навигации, содержащая несколько 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: элементы навигации перекрываются , когда я нажимаю другой контроллер вида.
Когда я использую hidesNavigationBarDuringPresentation = true
, он работает, как и ожидалось.
Проблема появляется на iPhone с надрезом и без надреза iOS 13.0 и 13.1 с использованием Xcode 11.0 и 11.1.
Вот весь тестовый проект: https://github.com/fl034/HidesNavigationBarDuringPresentationTest
Я подал радар (и вы тоже должны), но, может быть, некоторые из вас, ребята, уже обошли его?
Обновление : ошибка все еще существует в iOS 13.1.1