У меня есть ситуация, когда я выполняю некоторую инициализацию в приложении. При первом запуске я должен представить лицензионное соглашение с выбором кнопки «Я согласен / Я не согласен». Когда выбран вариант «Я согласен», я отображаю модальное представление, которое запрашивает имя пользователя и пароль. Это все отлично работает. Проблема в том, что после проверки имени пользователя и пароля модальное представление отклоняется. У меня остается представление 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];
Если я запускаю с этим кодом, модальное представление исчезает, и на короткое время появляется табличное представление, а затем исчезает с оставшимся на экране представлением лицензионного соглашения. Если я закомментирую второе утверждение, то никогда не увижу табличное представление.
Я знаю, что мне не хватает чего-то невероятно очевидного, но я в растерянности и застрял в этом довольно долго.