iOS раскручивается для просмотра не загружен

Я перед небольшой проблемой:

У меня что-то подобное при запуске приложения:

(1) Заставка -> Я вошел в систему? -> (3) HomeView | еще (2) вид входа

Поэтому, когда я вхожу в систему, я перехожу на домашнюю страницу. И когда я выхожу из системы, я могу раскрутить окно входа в систему, потому что я из него вышел.

НО, если я не перейду из вида входа в систему и не перенаправлю прямо на домашний вид, я не могу размотаться в вид входа в систему при выходе из системы.

Кто-нибудь знает решение по этому поводу?

3 ответа

Решение

Я просто изложил свою логику здесь:
Возьмите / добавьте один viewController, например, DummyViewController как rootViewController вашего приложения. в DummyViewController'sviewWillAppear метод поставить логику как

- (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'sRootViewController как показано ниже

-(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;
    }
}

Может быть, это немного глупый способ сделать это, но вы можете ВСЕГДА загружать представление входа в систему и делегировать ему "Я вошел в систему?" проверять. Вы можете загрузить его скрытым или со знаком ожидания, или как угодно... Таким образом, он уже загружен при выходе из системы.

Не видя ваш код, я не могу показать вам, как это сделать, но, думаю, логики достаточно.

Другие вопросы по тегам