iOS 5 引入了自定义容器 View Controller 的概念,并提供了类似 addChildViewController 的 API。问题:您可以将 View Controller 添加为子项并仍然使用 presentViewController 呈现它吗?执行后者是否会自动使其成为 presentingViewController 的 subview Controller ?

最佳答案

这不是它应该被使用的方式。

父/子关系适用于当 View Controller 具有由其自己的 View Controller 管理的 subview 时,例如 UITabBarController,其中父 View Controller 绘制选项卡, subview Controller 绘制每个选项卡的内容。

如果您使用presentViewController 呈现 View Controller ,它通常会占据整个屏幕,或者以模态出现,以便呈现的 View Controller 不再受控制。在这种情况下,演示者没有理由成为父级,因为它不需要与呈现的 Controller 合作——它只是让开,直到呈现的 Controller 再次被解除。

你为什么要这样做?如果只是为了让 View Controller 相互引用并可以传递数据,那么还有其他方法可以做到这一点(例如委托(delegate)模式、NSNotifications,甚至只是将两者联系起来的属性)。

关于ios5 - addChildViewController 和presentViewController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9136391/

10-09 16:16