Я работаю с UITableViewController
, который при прокрутке заставляет навигационную панель исчезать. Теперь, когда панель навигации скрыта, когда пользователь проводит пальцем по таблице, содержимое ячеек отображается под строкой состояния ...
Чтобы решить эту проблему, я попытался вставить UIView
для имитации фона строки состояния и все работает, но проблема в том, что когда я закрываю UITableViewController
, фоновое представление строки состояния не удаляется из суперпредставления
Пока мой код таков, вы можете помочь мне понять где я не прав? почему я не могу удалить UIView
из суперпредставления?
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
setupStatusBarView()
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
navigationController?.navigationBar.isHidden = true
UIApplication.shared.windows.first?.viewWithTag(1)?.removeFromSuperview()
}
//MARK: - Setup Status Bar View
func setupStatusBarView() {
let height = view.window?.windowScene?.statusBarManager?.statusBarFrame.height ?? 0
let statusBarView = UIView()
statusBarView.frame = CGRect(x: 0, y: 0, width: view.frame.width, height:height+5)
statusBarView.backgroundColor = .systemBackground
statusBarView.tag = 1
UIApplication.shared.windows.first?.addSubview(statusBarView)
}