ios - View Controller : What's the difference between present with animation and adding as a child?

标签 ios uiviewcontroller presentmodalviewcontroller

我需要呈现和关闭具有菜单动画的自定义 View Controller 。我试图以模态方式呈现它,但有很多错误消息告诉我我的开始/结束命令不平衡等等。看起来它应该很简单,但实际上并非如此。因此,我正在查看有关自定义容器和子 Controller 等的文档,这似乎完全是矫枉过正,但如果它使所有这些错误消失,我想这是值得的。

最佳答案

要让 View Controller 的内容对用户可见,它必须与窗口相关联。您可以通过多种方式在您的应用中执行此操作:

从另一个带有动画的 View Controller 呈现它

呈现的 View Controller 不是特定类型的 View Controller ——呈现的 View Controller 可以是内容或带有附加内容 View Controller 的容器 View Controller 。在实践中,内容 View Controller 专门设计为由另一个 Controller 呈现,因此将其视为内容 View Controller 的变体可能会很有用。

大多数时候,您呈现 View Controller 是为了从用户那里收集信息或为了某些特定目的吸引用户的注意力。一旦该目的完成,呈现 View Controller 将关闭呈现的 View Controller 并返回到标准应用程序界面。如图所示:-

enter image description here

使 View Controller 成为容器的子

View Controller 层次结构从单个父级开始,即窗口的 Root View Controller 。如果该 View Controller 是一个容器,它可能有提供内容的子级。反过来,这些 Controller 也可能是带有自己 child 的容器。 enter image description here

选项卡 View Controller 从窗口获取其大小。它为其标签栏保留空间,并将剩余空间留给其子项。如果导航 Controller 是现在显示的控件,它会为其导航栏保留空间并将其余部分交给其内容 Controller 。在每一步, subview Controller 的 View 都由父级调整大小并放入父级的 View 层次结构中。

View 和 View Controller 的这种组合还为您的应用程序处理的事件建立了响应者链。

关于ios - View Controller : What's the difference between present with animation and adding as a child?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17745274/

相关文章:

iphone - 动态填充 UITableView

iphone - 当 UITabBarController 的 'selectedViewController' 更改时触发事件?

iphone - Modal UIViewController 总是在 iPad 上全屏显示。为什么?

iOS 7 - 导航栏项目文本颜色

iphone - 设置iphone View Controller 的 View

ios - 在 iOS 7 上本地验证应用内收据和捆绑收据的完整解决方案

ios - 如何获取死机 iOS 设备的 UDID?

ios - 需要有关在 iOS 中请求通知权限的说明

ios - PresentModalViewController 不起作用

ios - iOS是否像Android一样支持导航栏按钮中的OptionsMenu