2010-07-10 26 views
4

與許多人一樣,我有一個啓動畫面,可以動畫顯示我的應用程序的第一個視圖。我一直在對iPad進行重新設計,如果您在縱向或橫向模式下握住設備,一切都按預期工作,使用正確的默認圖像,使用正確的圖像來激活此設置,所有的方向都可以工作精細。iPad推出方向,當應用程序代表出現問題時

如果我得到的設備進入橫向模式,然後把它平放在桌子上,不如意的事情。使用了正確的啓動畫面,但是用於激活它的圖像是錯誤的,我將它追溯到下面的返回5的代碼 - 也就是說它沒有返回它的portraitupsidedown/portrait/landscapeleft/landscaperight模式。

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 
UIInterfaceOrientation orientation = [UIDevice currentDevice].orientation; 

設備本身清楚地知道正確的取向狀態欄是正確的使用,的確是第視圖控制器旋轉到正確的方向 - 但有一點是清楚的是,[的UIDevice currentDevice] .orientation不是與設備實際知道的一樣,所以我用於在應用程序委託內部署適當的圖形的代碼是錯誤的。

我想我的問題是 - 我該如何解決這個問題?有沒有在應用程序委託中獲取正確的設備定位的方法?

回答

4

UIInterfaceOrientationUIDeviceOrientation的子集。如果UIDeviceOrientationIsValidInterfaceOrientation是假的,那麼你通常可以假設UIInterfaceOrientationPortrait。除了檢查設備方向,您還可以檢查的UIApplication,但在啓動時它也可能沒有有效值。

+0

啊,不知道IsValidInterfaceOrientation,這很有用。有趣的是,如果我在應用程序委託中使用statusBarOrientation,那會給我一個有效的方向,但是錯誤的 - 正如你所說,似乎在啓動時方向尚未傳遞給應用程序委託。最令人困惑的...看起來像我需要重組的東西:-( – Roger 2010-07-11 09:43:43

相關問題