1

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

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

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

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

解决方法是什么?我该如何解决?我正在使用 Swift4 和 Xcode9。

4

2 回答 2

5

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

您必须superviewWillTransition(to: with:). 通常它是第一行。

它应该看起来像这样:

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

这将允许超级视图将此方法类传递给它的所有子视图。因此,如果您有一个UIViewController内部 a UITabBarController,在 super 上调用此方法将允许所有其他选项卡接收此方法调用。

于 2018-02-18T13:52:27.207 回答
0

另外——如果使用带有子视图控制器的自定义 containerViewController?

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

于 2019-12-10T04:50:19.297 回答