[英]Presenting a modal view controller only after another one has been dismissed
我不能做
[myViewController dismissModalViewControllerAnimated:YES];
[myViewController presentModalViewController:nextModalViewController animated:YES];
一个接一个地播放,因为这时两个动画块试图同时影响相同的参考,并且情况严重恶化。
因此,我需要做的是仅在第一个动画完成后才调用后者。 但是没有像didDismissModalViewController
这样的UIViewControllerDelegate
方法。 我该怎么办?
这有点hacky(好吧,也许很多hacky),但是您可以在固定的延迟后简单地显示第二个:
[myViewController performSelector:@selector(showSecondModalView) withObject:nil afterDelay:0.5];
(或动画持续时间的结果如何)。
仅子类化视图控制器(如果还没有)并执行此操作,这有什么问题:
- (void) viewDidDisappear: (BOOL) animated
{
[super viewDidDisappear: animated];
[myViewController presentModalViewController:nextModalViewController animated:YES];
}
我不确定您如何处理对视图控制器的引用,但是我要提出的观点只是抓住正在滑落的模型视图控制器的viewDidDisappear。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.