2009-07-30 1 views
0

Я не могу просто сделатьПредставляя модальный контроллер представления только после того, как другой был уволен

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

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

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

ответ

2

Что случилось с просто подклассов контроллер представления (если вы еще не сделали) и делать это:

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


    [myViewController presentModalViewController:nextModalViewController animated:YES]; 
} 

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

+0

эй, спасибо за предложение! это похоже на работу. одно предостережение в том, что мне пришлось использовать performSelectorOnMainThread: withObject: waitUntilDone: даже если он уже находится в основном потоке, так что все внутренние уведомления, вызванные увольнением, будут очищены перед новым presentModalViewController: анимированный: вызов снова начинает смещаться , В противном случае я получаю EXC_BAD_ACCESS. – lawrence

3

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

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

(или независимо от продолжительности анимации, оказывается).

+0

Я согласен с этим ответом, видя, что это яблоко не обеспечило лучшего решения для этого – Daniel

+0

Эй, даже у меня была аналогичная проблема, и вышеупомянутое решение сработало для меня. Спасибо. У меня возник вопрос, как отображать первый-> второй-> снова первый-> снова второй контроллер модального просмотра (например, 1-й и 2-й контроллеры модального просмотра один за другим) – iOSDev

Смежные вопросы