繁体   English   中英

仅在解雇了另一个视图控制器之后,再显示一个模态视图控制器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM