У меня есть приложение по умолчанию UIWindow
, в котором я создаю свое приложение целиком, а затем у меня есть второй слой UIWindow
, поверх которого, в основном, у меня просто есть контроллер корневого представления, который я использую для представления пользовательских предупреждений и уведомлений.
Но когда я представляю второй UIWindow
с настройкой .isHidden = false
или вызовом .makeKeyAndVisible()
, строка состояния не меняет цвет в зависимости от оригинала UIWindow
, даже если верхняя строка полностьюочистить (bg color .clear
и ничего в нем нет).
Если у меня нет верхнего UIWindow
, строка состояния меняется с черного на белый при представлении нового UIViewController
с modalPresentationStyle = .pageSheet
. Но с новым UIWindow
сверху строка состояния не реагирует и остается черной.
EDIT:
Вот код для rootViewController
основного UIWindow
class AppContainerViewController: UIViewController {
var didFirstPresent = false
let popupWindow = UIWindow(frame: UIScreen.main.bounds)
var overWindow : UIWindow!
var overVC : UIViewController!
override func viewDidLoad() {
super.viewDidLoad()
// Add hubViewController as child of AppContainer
let hubViewController = AppGlobal.AppHandler.HubHandler.hubVC
view.addSubview(hubViewController.view)
addChild(hubViewController)
hubViewController.didMove(toParent: self)
// Add popup Layer window
popupWindow.rootViewController = AppGlobal.NotificationHandler.popupLayerViewController
popupWindow.isOpaque = false
popupWindow.windowLevel = .alert
popupWindow.backgroundColor = .clear
popupWindow.isUserInteractionEnabled = false
popupWindow.makeKeyAndVisible()
}
}
А вот код для rootViewController
из popupWindow
class PopupLayerViewController : UIViewController {
private let alertLayer = UIView()
override func viewDidLoad() {
view.addSubview(alertLayer)
alertLayer.translatesAutoresizingMaskIntoConstraints = false
alertLayer.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
alertLayer.heightAnchor.constraint(equalTo: view.heightAnchor).isActive = true
alertLayer.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
alertLayer.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
}
}