【发布时间】:2018-08-28 06:48:41
【问题描述】:
我有一个名为myView 的UIView 子类,它应该在设备方向改变时重新配置自己。我正在使用UIViewController 中的viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) 方法来调用重新配置视图的setUp() 方法。我遇到的问题是它在我第一次加载该特定视图控制器时工作,但如果我离开然后返回它,代码将不再工作。怎么了?代码如下:
@IBOutlet weak var myView: UIView!
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
self.myView.setUp()
}
如果我改用已弃用的方法didRotate(from fromInterfaceOrientation: UIInterfaceOrientation),代码每次都能正常工作。
【问题讨论】:
-
重新访问视图时检查viewWillTransition函数是否调用
-
它在召唤。此外,每次都会调用 self.myView.setUp() 。我怀疑这个问题与错误的引用或其他东西有关,好像可见的 myView 不再是实际被调用的那个。我上面是一个非常简化的代码版本,但是我不知道还要包括什么,而且太多了,无法将所有内容都放在那里...
标签: ios swift uiview uiviewcontroller viewwilltransitiontosize