Ios 崩溃:在viewController1上旋转时,viewController2中的约束为零

Ios 崩溃:在viewController1上旋转时,viewController2中的约束为零,ios,swift,rotation,viewcontroller,Ios,Swift,Rotation,Viewcontroller,我在viewController2中调用此代码: override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) { if UIDevice.currentDevice().orientation.isLandscape.boolValue { rotatedBool

我在viewController2中调用此代码:

 override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {

     if UIDevice.currentDevice().orientation.isLandscape.boolValue {

        rotatedBool = true

        tableViewConstraint.constant = -12

     } else {

        rotatedBool = false

       tableViewConstraint.constant = 21

    }

}
但是,如果在加载此view viewController2之前从另一个视图旋转应用程序,则会发生崩溃。 在展开可选值时意外发现nil。tableViewConstraint

我不明白为什么viewController2中的代码会从另一个视图调用

有人有主意吗?
谢谢,

如果不调用ViewController2,就无法调用它。我复制了您的问题,正如预期的那样,ViewController2内部没有调用任何内容


您必须有其他代码将其称为

可能是因为您的约束仅存在于一个尺寸类别中,并且当您的屏幕旋转时,没有为该尺寸类别定义约束,因此插座为零?不,约束本身没有问题。这个问题实际上很奇怪,例如,我将一个变量布尔值初始化为false,当视图出现时,它将被设置为true;然后在上面的代码中添加UIDevice.currentDevice…,然后保存这些代码,直到视图加载并准备好显示。