У меня 2 раскадровки следующим образом: (скоро будет 3, когда я добавляю в админ раскадровки, который почему я отделяя их)Правильный способ заменить раскадровку в Иерархии Apps, в отличие от Представляя более
1 - Войти 2 - Раскадровка для пассажиров
В зависимости от того, вошли ли они в систему или нет, Firebase определяет, как я определяю, какой из них представлен. Я загружаю с помощью didFinishLaunchingWithOptions в приложении делегата, как так сделать:
self.window = UIWindow(frame: UIScreen.main.bounds)
let standbyStoryboard: UIStoryboard = UIStoryboard(name: "StandbyStoryboard", bundle: nil)
let loginStoryboard: UIStoryboard = UIStoryboard(name: "LoginFlowStoryboard", bundle: nil)
// First check if the user is logged in
if let currentUser = FIRAuth.auth()?.currentUser {
let exampleViewController: StandbyVC = standbyStoryboard.instantiateViewController(withIdentifier: "Standby") as! StandbyVC
self.window?.rootViewController = exampleViewController
self.window?.makeKeyAndVisible()
} else {
// Not Logged In
let exampleViewController: LoginViewController = loginStoryboard.instantiateViewController(withIdentifier: "InitialLogin") as! LoginViewController
self.window?.rootViewController = exampleViewController
self.window?.makeKeyAndVisible()
}
Когда пользователь выходит из системы, я хотел бы, чтобы закрыть Пассажирскую раскадровку и загрузить начальный логин один раз (при условии, что они вошел в систему). Я полагал, что я хотел бы сделать это как так, так же, как я представляю их с пассажирской раскадровки при входе в систему:
func logout() {
let loginStoryboard: UIStoryboard = UIStoryboard(name: "LoginFlowStoryboard", bundle: nil)
let exampleViewController: LoginViewController = loginStoryboard.instantiateViewController(withIdentifier: "InitialLogin") as! LoginViewController
self.present(exampleViewController, animated: true, completion: nil)
}
Является ли это правильный способ сделать это? Единственная причина, по которой я спрашиваю, состоит в том, что, по-видимому, функция deinit {} не вызывается на главном контроллере представления моего раскадровки для пассажиров, когда вызывается функция выхода из системы, и снова появился начальный логин (что заставило меня поверить в эту раскладку для пассажиров все еще сохраняющиеся где-то и что я «укладки нескольких раскадровки», если это возможно, и имеет смысл)
Gotcha! Спасибо, что поняла, что это так. Какие-либо рекомендации относительно того, как правильно представить презентационную версию вместо текущей раскадровки? Я изменю свой титул, чтобы сделать его более понятным. – Belvedare
Вы не представляете раскадровку. Вы представляете контроллер вида. Это может помочь вам остановиться и узнать об объектно-ориентированном программировании (классы и экземпляры), о том, что такое диспетчер представлений, и что такое раскадровка. – matt