Вид скрывается за строкой состояния, когда root-контроллер не установлен в Appdelegate. - PullRequest
0 голосов
/ 14 мая 2018

В моем AppDelegate.swift я проверяю, вошел ли пользователь в систему или нет

if let currentUser = Auth.auth().currentUser{
    self.window?.rootViewController = self.storyboard?.instantiateViewController(withIdentifier: "HomeScreen")
}else{
    self.window?.rootViewController = self.storyboard?.instantiateViewController(withIdentifier: "LoginScreen")
}

Если пользователь не зарегистрирован, он перенаправляется на LoginScreen и там он может войти в систему, затем я представляю HomeScreen следующим образом

UIApplication.shared.keyWindow?.window?.rootViewController = self.storyboard?.instantiateViewController(withIdentifier: "HomeScreen")

Мой HomeScreen - это NavigationController, который будет перенаправлять на ViewController, там я добавляю свое представление следующим образом:

UIApplication.shared.keyWindow?.addSubview(newView!)

Когда мое приложение запускается прямо на домашний экран из AppDelegate, новый вид будет отображаться над моей строкой состояния, как и должно быть. Если домашний экран отображается после входа пользователя в систему с экрана входа, новый экран будет отображаться за строкой состояния.

В чем может быть проблема, из-за которой мой вид отображается под строкой состояния во втором сценарии?

РЕДАКТИРОВАТЬ: Я мог бы также добавить, что newView является жестом пальца, чтобы показать его.

This is how it looks when a user login through LoginScreen

This is how it should look and does when you get redirected to HomeScreen from AppDelegate.swift

...