Я нарисовал рабочий процесс приложения, где у вас есть главное меню «Уровень 0», которое вызывает модальное представление «Уровень 1», которое вызывает другое модальное представление «Уровень 2».iPhone - отклонение родительского модального вида
Я могу получить эту работу, никаких проблем, и я могу уволить весь стек с помощью:
[[[self parentViewController] parentViewController] dismissModalViewControllerAnimated:YES];
в модальном представлении «Level 2».
Моя проблема в том, что модальный вид «Уровень 2» имеет навигационную панель. Я не могу убрать весь стек. Код я перечислил выше только приносит мне один уровень назад, так что на самом деле действует так же, как если бы я сделал это:
[self dismissModalViewControllerAnimated:YES];
на модальном зрении «Уровень 2».
Резюме: Когда модальный вид «Уровень 1» вызывает модальное вид «Уровень 2», используя следующее:
Level2 *level2 = [[[Level2 alloc] initWithNibName:@"Level2" bundle:nil] autorelease];
[self presentModalViewController:portalMainController animated:YES];
Я могу уволить весь стек и вернуться в главное меню (уровень 0). НО когда «Уровень 1» называет «Уровень 2» с навигационной панели, как следующее:
Level2 *level2 = [[[Level2 alloc] initWithNibName:@"Level2" bundle:nil] autorelease];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:level2];
[self presentModalViewController:navigationController animated:YES];
[navigationController release];
Я не могу вернуться к «Level 0», я только вернуться к "1-го уровня.
Любые предложения?
Спасибо. Я установил протокол Level2, но у меня возникла проблема «установка делегата контроллера уровня 2 в качестве контроллера уровня 1». Я прочитал несколько других сообщений, но у меня возникла проблема, обволакивающая мою голову. – CraigH
Когда Уровень 1 создает экземпляр контроллера уровня 2, вы можете сделать level2.delegate = self; – rickharrison
Отлично. Спасибо, Рик, я понял. – CraigH