iOS раскручивается для просмотра не загружен
Я перед небольшой проблемой:
У меня что-то подобное при запуске приложения:
(1) Заставка -> Я вошел в систему? -> (3) HomeView | еще (2) вид входа
Поэтому, когда я вхожу в систему, я перехожу на домашнюю страницу. И когда я выхожу из системы, я могу раскрутить окно входа в систему, потому что я из него вышел.
НО, если я не перейду из вида входа в систему и не перенаправлю прямо на домашний вид, я не могу размотаться в вид входа в систему при выходе из системы.
Кто-нибудь знает решение по этому поводу?
3 ответа
Я просто изложил свою логику здесь:
Возьмите / добавьте один viewController, например, DummyViewController
как rootViewController
вашего приложения. в DummyViewController's
viewWillAppear
метод поставить логику как
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
if(login == YES)
{
//go to home screen
}
else
{
// go to login screen
}
}
В DummyViewController
вам просто нужно написать код в viewWillAppear
уже нет. Если вы хотите выйти из системы, просто позвоните
[self.navigationController popToRootViewControllerAnimated:YES];
А также viewWillAppear
метод DummyViewController
будет управлять вашим экраном на основе статуса входа в систему.
Ты можешь использовать NSNotificationCenter
уведомить ваш корневой класс, когда выход из системы. Тогда поп на ваш rootViewController
Если вы используете UINavigationController, просто представьте свой контроллер входа на NavigationController's
RootViewController
как показано ниже
-(void)logoutNotification
{
logout = YES;
}
-(void)viewDidAppear:(BOOL)animated
{
if (logout)
{
AuthController * auth = [[AuthController alloc] init];
[self presentViewController:auth animated:NO completion:^{
}];
logout = NO;
auth = nil;
}
}
Может быть, это немного глупый способ сделать это, но вы можете ВСЕГДА загружать представление входа в систему и делегировать ему "Я вошел в систему?" проверять. Вы можете загрузить его скрытым или со знаком ожидания, или как угодно... Таким образом, он уже загружен при выходе из системы.
Не видя ваш код, я не могу показать вам, как это сделать, но, думаю, логики достаточно.