Представление модального контроллера представления только после того, как другой был отклонен - PullRequest
0 голосов
/ 30 июля 2009

Я не могу просто сделать

[myViewController dismissModalViewControllerAnimated:YES];
[myViewController presentModalViewController:nextModalViewController animated:YES];

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

Так что мне нужно сделать последний вызов только после завершения первой анимации. Но нет такого метода UIViewControllerDelegate, как didDismissModalViewController. Что мне делать?

Ответы [ 2 ]

3 голосов
/ 30 июля 2009

Это немного хакерски (хорошо, может быть, очень хакерски), но вы можете просто представить второй после фиксированной задержки:

[myViewController performSelector:@selector(showSecondModalView) withObject:nil afterDelay:0.5];

(или любой другой продолжительности анимации).

2 голосов
/ 30 июля 2009

Что плохого в том, чтобы просто создать подкласс контроллера вида (если вы этого еще не сделали) и сделать это:

 - (void) viewDidDisappear: (BOOL) animated
 {
     [super viewDidDisappear: animated];


     [myViewController presentModalViewController:nextModalViewController animated:YES];
 }

Я не уверен, как вы справляетесь со своими ссылками на контроллеры представления, но я пытаюсь подчеркнуть, что viewDidDisappear для контроллера вида модели, который выдвигается, просто перехватывается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...