我应该叫dismissViewController上的模态的UIViewController或呈现它

2019-10-18 10:37发布

这似乎在任何情况下工作,但为什么和怎样,哪些是最好的方式?

Answer 1:

为什么和怎么样

比方说,视图控制器A已经提出B和B已呈现下,在转。

当你调用dismissViewControllerAnimated:completion: ,iOS的检查,看看是否你调用它的视图控制器有一个孩子在其presentedViewController财产。 如果确实如此,那么它驳回该控制器。

所以,如果我把它称为第B在我们的例子,它驳斥C,但是如果我把它放在A,解聘B(其带走下用它)。

如果我把它放在C,那么它就没有孩子。 所以后来的iOS检查presentingViewController财产。 如果设置,它要求解散它的控制器。 所以,如果我把它称为上C,iOS的发送请求发送回B,其驳回C.

因此呼吁方法无论是B或C将摆脱的C,同时呼吁其放在摆脱B和C的

最佳实践

说它对B,上呈现,每一次的东西。 这是

  1. 减少混乱,因为你现在和罢免将在同一个地方,和

  2. 更长远的保障,因为在未来的某个时刻,你可以使C存在另一个视图控制器(d),然后解雇会突然断裂(它会突然开始解雇d,而不是解雇本身)。



文章来源: Should I call dismissViewController on the modal UIViewController or the UIViewController that presented it?