我的应用程序带有动画闪屏和主界面。
要从启动画面转换到主界面,我使用了以下代码:
presentViewController(mainViewController, true) {
UIApplication.sharedApplication.keyWindow.rootViewController = mainViewController
}
但显然这种方法破坏了自转(让我花了一些时间找到那个)。现在我遇到的问题是这种自动旋转不适用于动画。
我想这不是动画,因为旧的viewcontroller仍然位于另一个viewcontroller下方,它只是转发新的方向。
如何正确从一个viewcontroller转换到下一个viewcontroller,同时能够销毁旧的viewcontroller并保持旋转?
修改:当我关闭我的应用时,我注意到我的主屏幕旋转了(从启动方向到关闭应用时的方向)
答案 0 :(得分:2)
除了凯末尔所说的,我找到了我的具体问题:
我真的不明白为什么会出现这个问题。我有一个在Info.plist
中设置的故事板作为主界面(我忽略了这一点,因为我不需要它)。在我的AppDelegate.finishedLaunching
中,我创建了一个新窗口并设置了它的根视图控制器,然后我将其设置为关键窗口。删除AppDelegate
或Info.plist
中的窗口设置可解决问题。
答案 1 :(得分:1)
根据UIWindow文档;
如果窗口具有现有视图层次结构,则旧视图为 在安装新的之前删除。
来源链接 - > here
因此,系统会自动销毁,同时决定不再需要您的第一个RootViewController。您可以像这样处理转换;
if var topRootController = UIApplication.sharedApplication().keyWindow?.rootViewController {
while (topRootController.presentedViewController != nil) {
topRootController = topRootController.presentedViewController!
}
topRootController.presentViewController(homeController, animated: true, completion: nil)
}