2016-09-21 92 views
0

我有一个动画splashscreen和主界面的应用程序。为什么我的应用程序没有动画旋转?

从溅射屏幕过渡到我用这个代码的主界面:

presentViewController(mainViewController, true) { 
    UIApplication.sharedApplication.keyWindow.rootViewController = mainViewController 
} 

但显然这种方法遗址自转(我花了一段时间才能找到一个)。现在我有这个自动旋转不是动画的问题。

我想这不是动画,因为旧的viewcontroller仍然生活在其他viewcontroller之下,它只是转发新的方向。

我该如何正确从一个视图控制器转换到下一个,同时能够销毁旧的viewcontroller并保持旋转?

编辑:我发现我的主屏幕旋转,当我关闭我的应用程序(从它启动定向方位的应用程序是,当我关闭了它)

回答

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) 
} 
+0

这有相同的结果(旋转发生在没有动画的情况下)并打印出来:'警告:试图在上呈现,其视图不在窗口层次结构中!' – vrwim

+0

检查编辑答案。 –

+0

仍然没有动画。 – vrwim

2

除了什么凯末尔说,我已经找到了我的具体问题:

我真的不明白,为什么这给了这个问题。我在Info.plist中设置了一个故事板作为主界面(我忽略了这一点,因为我不需要它)。在我的AppDelegate.finishedLaunching中,我创建了一个新窗口并设置了它的根视图控制器,然后将其设置为关键窗口。删除AppDelegateInfo.plist中的窗口设置可解决此问题。

相关问题