为什么我的应用程序没有动画旋转?
问题描述:
我有一个动画splashscreen和主界面的应用程序。为什么我的应用程序没有动画旋转?
从溅射屏幕过渡到我用这个代码的主界面:
presentViewController(mainViewController, true) {
UIApplication.sharedApplication.keyWindow.rootViewController = mainViewController
}
但显然这种方法遗址自转(我花了一段时间才能找到一个)。现在我有这个自动旋转不是动画的问题。
我想这不是动画,因为旧的viewcontroller仍然生活在其他viewcontroller之下,它只是转发新的方向。
我该如何正确从一个视图控制器转换到下一个,同时能够销毁旧的viewcontroller并保持旋转?
编辑:我发现我的主屏幕旋转,当我关闭我的应用程序(从它启动定向方位的应用程序是,当我关闭了它)
答
根据一个UIWindow文件;
如果该窗口具有现有视图层次结构,则在安装新视图之前删除旧视图 。
来源链接 - >here
所以,系统自动销毁,同时决定不再需要你的第一个RootViewController的。你可以像这样处理转换;
if var topRootController = UIApplication.sharedApplication().keyWindow?.rootViewController {
while (topRootController.presentedViewController != nil) {
topRootController = topRootController.presentedViewController!
}
topRootController.presentViewController(homeController, animated: true, completion: nil)
}
答
除了什么凯末尔说,我已经找到了我的具体问题:
我真的不明白,为什么这给了这个问题。我在Info.plist
中设置了一个故事板作为主界面(我忽略了这一点,因为我不需要它)。在我的AppDelegate.finishedLaunching
中,我创建了一个新窗口并设置了它的根视图控制器,然后将其设置为关键窗口。删除AppDelegate
或Info.plist
中的窗口设置可解决此问题。
这有相同的结果(旋转发生在没有动画的情况下)并打印出来:'警告:试图在上呈现,其视图不在窗口层次结构中!' –
vrwim
检查编辑答案。 –
仍然没有动画。 – vrwim