我正在制作一款应用程序,可以在横向和纵向模式下使用iPad。 我UIViewControllers的结构如下:当设备方向改变时,UIViewController不会更新视图的约束
我有一个UICollectionView
其具有以下约束的UIViewController
:顶部,前置,并且底部设置为与它的父(在上海华是我的UIViewController
的UIView
)。
当我点击一个单元格时,我推动另一个UIViewController
在UINavigationController
这是一个单元格的详细viewController。简单。
当我更改第一个视图控制器中的设备方向时,UICollectionView
界限被正确设置。
来到这里,我问题:
如果我选择在UICollectionView
细胞,显示第二细节的viewController。那么如果在这第二个ViewController中我改变了设备的方向,然后我回到第一个viewController中,我的UIViewController
的视图还没有被旋转过。我不知道为什么,我试着没有成功:
self.view.layoutIfNeeded()
在我的firstViewController的viewDidAppear()
根据当前的方向更新约束,它没有工作。这没有工作,因为我注意到一件事:
我的第一个viewController的框架视图仍然是以前的方向相同,它并没有改变......但如果我再次旋转设备,检测UIViewController
方向改变,视图边界设置正确。
所以我的问题是:当我在第二个视图控制器,并且我正在旋转设备,然后回到前一个视图控制器时,前一个控制器未检测到方向更改我只是在第二个视图控制器。
GIF演示:
那之后,我做了一个旋转从纵向到横向模式时,视图不改变调试视图层次工具如下所示:
UIView
仍然是肖像,所以UICollectionView
约束的不能用新方向更新...
任何想法?