viewWIllTransition未在多个Controller中调用

时间:2018-02-18 07:12:32

标签: ios swift viewwilltransitiontosize

我正在学习开发iOS应用程序,目前我有4个视图控制器。

第一个viewController 中,我使用 viewWillTransition 方法在运行时调整UI。

再次在 4th ViewController 中,我尝试使用方法 viewWillTransition ,但是没有在那里调用它。

当我在第一个控制器中对方法(viewWillTransition)发表评论时,它神奇地开始在第四个viewController 中工作。所以我得出的结论是 viewWillTransition 只能在一个viewController中实现但是我需要在多个地方使用它。

有什么工作?我该如何解决? 我使用的是Swift4和Xcode9。

2 个答案:

答案 0 :(得分:2)

只是将我的评论作为答案重新发布,

您必须在super的实施中的某个地方致电viewWillTransition(to: with:)。通常它是第一行。

看起来应该是这样的:

super.viewWillTransition(to: size, with: coordinator)

这将允许superview将此方法类传递给它的所有子视图。因此,如果UIViewController中有UITabBarController,则在super上调用此方法将允许所有其他选项卡接收此方法调用。

答案 1 :(得分:0)

还-如果将自定义的containerViewController与子viewControllers一起使用?

如果您已将子viewController的视图添加到父viewController作为子视图,则必须在父viewController上调用.addChild(_:)方法以在两个视图控制器之间创建父子关系。