2016-09-21 93 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中的窗口設置可解決此問題。

相關問題