У меня есть панель навигации, которая включает в себя панель поиска для фильтрации данных таблицы в текущем VC, назовем ее 1st VC.
А по шагам активна эта строка поиска и отмени ее. Затем щелкните по любой строке tableView 1st VC, чтобы открыть 2nd VC. Странное поведение наступает , навигационный заголовок 2-го ВК перекрывается с навигационным заголовком 1-го ВК. Кроме того, кнопка в правом верхнем углу больше не активируется после возникновения этой проблемы. Я получаю это при обновлении до iOS 13 с предыдущей версии 12.
/ / / сначала прикрепляем скриншот проблемы, вы можете видеть, что заголовок «Музыка» в 1-м ВК перекрывается с заголовком «Игра» во 2-м ВК.
/ / / навигационный штрих-код в 1-м ВК
override func viewDidLoad() {
super.viewDidLoad()
// set tableView's separatorColor
self.tableView.separatorColor = UIColor(rgb: 0x5E5E5E)
// get songs from app's local dir
self.retrieveSongsfromLocalDir()
// add search bar
resultSearchController = ({
let controller = UISearchController(searchResultsController: nil)
controller.searchResultsUpdater = self
controller.hidesNavigationBarDuringPresentation = false
controller.obscuresBackgroundDuringPresentation = false
controller.searchBar.sizeToFit()
// set search Bar covered color, same with tableView's background color.
controller.searchBar.barTintColor = UIColor(rgb: 0x292f33)
return controller
})() // closure, learn it later!!
navigationItem.searchController = resultSearchController
// reload the tableView
self.tableView.reloadData()
}
/ / Я поставил пользовательский код навигационной панелив AppDelegate.swift для глобального использования.
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Custom Navigation Bar's appearance.
UINavigationBar.appearance().tintColor = UIColor.white
UINavigationBar.appearance().barTintColor = UIColor(rgb: 0x55acee)
UINavigationBar.appearance().isTranslucent = false
UINavigationBar.appearance().clipsToBounds = false
// UINavigationBar.appearance().backgroundColor
UINavigationBar.appearance().titleTextAttributes = [.foregroundColor: UIColor.white, .font: UIFont.boldSystemFont(ofSize: 23)]
return true
}
/ / / Обновление, оно дублируется с потоком /12786218/ios-13-uibarbuttonitem-ne-aktiviruetsya-i-perekryvaet-uinavigationbars-pri-ispolzovanii-uisearchcontroller
. Кажется, ошибка Apple от iOS 13, а временное исправление - установить hidesNavigationBarDuringPresentation = true
.