ios - 为什么旋转应用程序时会在所有 View Controller 中调用 viewWillTransition 方法?

标签 ios iphone swift xcode9 uiviewanimationtransition

我的应用程序是基于选项卡的导航。我正在使用 Xcode9 和 iOS11。为了支持横向/纵向兼容性,我在所有 View Controller 中使用以下方法。

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransitionToSize(size, withTransitionCoordinator: coordinator)

}

但是当我在第一个 View Controller 中旋转应用程序时,会自动调用所有其他 View Controller 中的 viewWillTransition 方法。如何解决这个问题?

最佳答案

它正在调用 viewWillTransition 方法,因为当时所有选项卡 View Controller 都在内存中。

您可以添加对当前 View Controller 的检查,并仅当它是正确的 View Controller 时才更新它。

在调用 viewWillAppear 方法时将 bool 值设置为 true,在调用 viewWillDisappear 方法时将 bool 值设置为 false。

关于ios - 为什么旋转应用程序时会在所有 View Controller 中调用 viewWillTransition 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49045817/

相关文章:

ios - 如何告诉按钮不要继续,但在 Storyboard 中仍然有继续

ios - 如何将一个类的函数访问到另一个 objective-c

ios - 如何停止节点而不是让它在 1 秒后再次移动?

iphone - 如何为我的 iOS 应用程序创建小部件?

ios - 如何在 Swift 中取消初始化惰性变量?

ios - 无法获取地点 - REQUEST_DENIED

iphone - 提交 iphone 应用程序时遇到问题

iphone - 在 Quartz 中绘制方程

ios - 检测触摸并忽略其他手势 Swift SceneKit

ios - 我如何替换 #define 以用于常见的 swift 和 objective-c 使用