Ios 崩溃:在viewController1上旋转时,viewController2中的约束为零
我在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
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…,然后保存这些代码,直到视图加载并准备好显示。