Потеряв навигационный контроллер, как открыть другой вид - PullRequest
2 голосов
/ 12 мая 2011

В настоящее время я отображаю UIViewController следующим образом:

AlaramDetail *alaramDetail = [[AlaramDetail alloc] init];
alaramDetail.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:alaramDetail animated:YES];
[alaramDetail release];

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

Ответы [ 3 ]

6 голосов
/ 12 мая 2011

Вам необходимо объявить новый навигационный контроллер, добавить в него свой контроллер вида, а затем представить модальный навигационный контроллер.

AlaramDetail *alaramDetail = [[AlaramDetail alloc] init];

UINavigationController *newNavigation = [[UINavigationController alloc] initWithRootViewController:alaramDetail];
[alaramDetail release];
newNavigation.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;

[self presentModalViewController:newNavigation animated:YES];
[newNavigation release];

Редактировать:

Чтобы отклонить модальное представление:

  1. Простой способ: В вашем модальном представлении в каком-то методе, который вы вызываете, просто отклонитьдобавить:

    [self.navigationController dismissModalViewControllerAnimated: YES];

  2. Более сложный способ: реализовать и делегировать протокол для вашего модального представления и создать контроллер представления, который представляет модальноепросмотреть делегата этого.А в методе делегата отклонить модальное представление.Я делаю это так, когда мне нужно отправить данные из модального представления в контроллер, который их представляет.

0 голосов
/ 12 мая 2011

Попробуйте это,

`[self.navigationController presentModalViewController:alaramDetail animated:YES]`;

вместо

 [self presentModalViewController:alaramDetail animated:YES];
0 голосов
/ 12 мая 2011

Если вы используете контроллер навигации, это должно быть так:

AlaramDetail *alaramDetail = [[AlaramDetail alloc] init];
[self.navigationController pushViewController:alaramDetail animated:YES];
[alaramDetail release];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...