如果我正确理解您的帖子,您更有可能要求对 Apple 文档的解释而不是具体问题。
不过,我会给你这个解释,我希望它会对你有所帮助:
你写:
一切正常。。
那就是,因为你在这里做得很好!
根据MVC设计模式(模型-视图-控制器),您在代码中使用类 UIViewController(“C”)和 UIView(“V”)。
视图包含对象(如标签、按钮、子视图等)的可视化表示,但它们的行为没有逻辑。
视图控制器提供逻辑,例如 IBAction 方法和您可以实现的任何其他方法。
每个 UIViewController 都有自己的包含视图的“视图”属性,控制器确实管理视图的行为。该视图通常包含附加视图,例如标签、图像和按钮。它们是子视图并存储在视图的“子视图”数组属性中。顺便说一句,每个视图都有这样一个 subviews 属性——也就是说,我们如何实现复杂的视图层次结构。
在您的情况下(由一个通用视图控制器管理的多个子视图),该方法
transitionFromView:toView:duration:options:completion:
在动画的支持下隐藏“fromView”并取消隐藏“toView”。这是到视图之间的过渡。文档中的段落应让您作为开发人员做好准备,该方法仅管理视觉表示的更改,不为您的视图控制器提供额外的“服务”以进一步管理参与的视图。
这意味着,您必须通过自己的代码管理例如视图的状态(哪个视图实际上为用户提供交互)。在我看来,你已经做得很好了!
在更广泛的范围内,iOS 也支持 UIViewController 容器——它们可以包含子视图控制器(它们再次包含它们的视图及其子视图)。在这样的架构中,还有另一种来自 SDK 的过渡方法,
transitionFromViewController:toViewController:duration:options:animations:completion:
它允许您实现不是在两个视图之间而是在两个视图控制器之间的转换。
我希望这不是太多的文字,有助于让你更清楚。