Я получил панель навигации, содержащую несколько кнопок 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