一些快速问题,我在堆栈上有5 VC
。当我使用第二个VC时,如果我旋转到风景,而当我移动到1st
VC时,我的布局将完全折叠。
在第二个VC中,我添加了viewWillTransition
,并且我是invalidateLayout
的表视图。如果我在第一个屏幕viewWillAppear中添加tableview.reloaddata()
,那就很好。
但是请考虑如果我在堆栈上有5个VC,则无法在所有VC中编写代码。有没有更好的方法来处理它。
答案 0 :(得分:5)
在您的应用程序委托中添加...。
var orientationLock = UIInterfaceOrientationMask.all
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
return self.orientationLock
}
struct AppUtility {
static func lockOrientation(_ orientation: UIInterfaceOrientationMask) {
if let delegate = UIApplication.shared.delegate as? AppDelegate {
delegate.orientationLock = orientation
}
}
static func lockOrientation(_ orientation: UIInterfaceOrientationMask, andRotateTo rotateOrientation:UIInterfaceOrientation) {
self.lockOrientation(orientation)
UIDevice.current.setValue(rotateOrientation.rawValue, forKey: "orientation")
}
}
从任何这样的视图控制器中使用它...
AppDelegate.AppUtility.lockOrientation(UIInterfaceOrientationMask.portrait, andRotateTo: UIInterfaceOrientation.portrait)