2013-07-25 43 views
2

答:ChildViewController:使用dismissViewController时有什么区别?

[[self presentingViewController] dismissViewControllerAnimated:YES completion:nil]; 

B:ParentViewController:

[self dismissViewControllerAnimated:YES completion:nil]; 

是什么A和B之间有什么区别?

回答

-2

dismissModalViewControllerAnimated:是一个不推荐使用的API,它在转移到更多基于块的API之前由Apple公开。与Vizlix不同,我会说dismissModalViewControllerAnimated:不应该被使用。它不再在苹果公司维护,或至少不正确,因为使用它有一些特殊的副作用,在使用presentViewController:animated:completion:dismissViewControllerAnimated:completion:时会消失。旧API只能用于仅针对较旧iOS版本的特定代码路径。我所说的副作用至少是iOS6。

最重要的是,基于块的API提供了旧式API所不具备的功能(例如,功能,从推送中丢失; pop API等)。想象一下,需要创建一个视图控制器事件链。如果不知道动画何时完成,则由于正在执行动画而正在进行另一个动画,因此很有可能会碰到一个错误。使用基于块的API,您可以轻松链接这些事件。

+1

首先将您的答案与jxdwinter所要求的相匹配!他并没有问什么已被弃用,以及API作为代码结构维护什么。他刚才问的区别?即使每个人都知道[self.parentViewController dismissModalViewControllerAnimated:YES]已被弃用。 LOLZ ;-) – Vizllx