Согласно Apple, разделенное представление всегда должно быть контроллером корневого представления на протяжении всего жизненного цикла приложения.Как перезагрузить контроллер корневого представления после выхода из системы?
В любое время, когда я выхожу из учетной записи, единственным способом, с помощью которого я мог перезагрузить данные контроллера подробного представления, было сделать контроллер входа в систему контроллером корневого представления, если пользователь вышел из системы, а затем сделать косу контроллер корневого представления снова.
Это просто пример:
// if the user is not logged in
if FIRAuth.auth()?.currentUser?.uid == nil {
window?.rootViewController = UINavigationController(rootViewController: LoginController())
} else {
// If the user is logged in, show the main controller
window?.rootViewController = UINavigationController(rootViewController: MainController(collectionViewLayout: UICollectionViewFlowLayout()))
}
Без делать то, что я сделал выше: Если бы я выйти из системы, журнал в целях представит себя модально. Если я должен был войти в другую учетную запись и затем отклонить логин-контроллер по-разному, разделение будет по-прежнему выглядеть одинаково из последней учетной записи. Итак, есть ли метод или метод, чтобы я мог представить контроллер журнала с анимацией, которая после повторного входа в систему обновляется с разделенным представлением? Я хочу убедиться, что следую рекомендациям.
(Примечание: корень контроллера представления детали в представлении раздельного является UICollectionViewController я делаю все это программно.).
Будет ли 'self.mainController' иметь тип UINavigationController? Как и в, 'var mainController: UINavigationController?' –
Кроме того, не было бы целесообразно иметь экземпляр singleton внутри класса rootViewController? –
Первый вопрос: я предпочитаю UIViewController, я не вижу преимущества UINavigationController для этой цели, поскольку он должен иметь контроллер корневого представления. Но это личное решение, основанное на моих потребностях. Второй вопрос: Корневой контроллер - это единственный экземпляр, но не один тон, если это то, что вы имеете в виду. Это? – MCMatan