iOS Как скрыть предыдущее подпредставление

У меня есть ситуация, когда я выполняю некоторую инициализацию в приложении. При первом запуске я должен представить лицензионное соглашение с выбором кнопки "Я согласен / я не согласен". Когда выбран вариант "Я согласен", я отображаю модальное представление, запрашивающее имя пользователя и пароль. Это все отлично работает. Проблема в том, что после проверки имени пользователя и пароля модальное представление закрывается. У меня остается представление EULA, все еще отображаемое на экране, а не представление основной таблицы приложения. Я делаю следующее в коде EULA viewcontroller:

- (IBAction)didAgree:(id)sender {
    LoginViewController *lvc=[[[LoginViewController alloc] init] autorelease];
    lvc.modalTransitionStyle=UIModalTransitionStyleCoverVertical;
    [self presentModalViewController:lvc animated:YES];
    [self.view removeFromSuperview];
}

Если я перемещу последнюю строку (removeFromSuperview) до вызова presentModal, то, конечно, представление Login не будет отображаться.

В коде контроллера вида входа в систему у меня есть это после нажатия кнопки входа в систему:

[[self parentViewController] dismissModalViewControllerAnimated:YES];
[[self parentViewController].view removeFromSuperview];

Если я запускаю с этим кодом, модальное представление исчезает, и табличное представление появляется на короткое время, а затем исчезает, а представление EULA остается на экране. Если я закомментирую второе утверждение, то я никогда не увижу табличное представление.

Я знаю, что мне не хватает чего-то невероятно очевидного, но я в растерянности и застрял в этом довольно долго.

1 ответ

Решение

Я думаю, что проблема здесь:

[self presentModalViewController:lvc animated:YES];

В основном self там. Это означает, что вы представляете экран входа модально из того, что self это: ваш EULA-ViewController. Вы не можете удалить экран EULA сейчас.

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

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