A:ChildViewController:
[[self presentingViewController] dismissViewControllerAnimated:YES completion:nil];
B:ParentViewController:
[self dismissViewControllerAnimated:YES completion:nil];
A和B有什么区别?
答案 0 :(得分:-2)
dismissModalViewControllerAnimated:
是一个弃用的API,Apple在转向更多基于块的API之前就已经公开了。与Vizlix不同,我会说永远不应该使用dismissModalViewControllerAnimated:
。它不再在Apple上维护,或者至少不正确,因为使用它会产生一些特殊的副作用,在使用presentViewController:animated:completion:
和dismissViewControllerAnimated:completion:
时会消失。旧API应仅用于仅针对较旧iOS版本的特定代码路径。我所说的副作用至少来自iOS6。
最重要的是,基于块的API提供了旧式API无法实现的功能(功能,例如推送中突然缺少的功能;例如,pop API)。想象一下,需要创建一系列视图控制器事件。在不知道动画何时结束的情况下,由于执行动画而另一个正在进行中,因此很有可能遇到错误。使用基于块的API,您可以轻松地链接此类事件。