首页 > 解决方案 > viewWillTransition 没有被称为 swift 4

问题描述

我正在尝试检测我的 iOS 设备上的方向变化。我认为这很简单,但实际上它不起作用......

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransition(to: size, with: coordinator)
    print("Will Transition to size \(size) from super view size \(self.view.frame.size)")

    if (size.width > self.view.frame.size.width) {
        print("Landscape")
    } else {
        print("Portrait")
    }

    if (size.width != self.view.frame.size.width) {
        // Reload TableView to update cell's constraints.
        // Ensuring no dequeued cells have old constraints.

    }


}

以上是我在stackoverflow上找到的代码。viewWillTransition 没有被调用。我注意到帖子坚持要让它工作,但是没有,你可以看到有一个 super 并且它仍然不工作。

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
}

是我下一次尝试修复它,什么也没做。

帮助?

标签: iosswift

解决方案


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


推荐阅读