仅在另一个被取消之后呈现模态视图控制器

时间:2009-07-30 18:06:15

标签: iphone objective-c cocoa-touch

我不能只做

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

一个接一个,因为那时两个动画块试图同时影响相同的引用,事情就会严重破坏。

所以我需要做的是只在第一个动画结束后才调用后者。但是没有像UIViewControllerDelegate这样的didDismissModalViewController方法。我该怎么办?

2 个答案:

答案 0 :(得分:3)

有点hacky(好吧,也许很多hacky),但你可以在一个固定的延迟之后简单地呈现第二个:

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

(或任何动画持续时间结果)。

答案 1 :(得分:2)

只是继承视图控制器(如果你还没有)并且这样做有什么问题:

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


     [myViewController presentModalViewController:nextModalViewController animated:YES];
 }

我不确定你是如何处理对视图控制器的引用的,但我想要的是抓住正在滑落的模型视图控制器的viewDidDisappear。