我有可以在縱向或橫向模式下啓動的應用程序。主屏幕上的控件看起來不同,具體取決於應用程序的模式。iPad在啓動時無法識別正確的界面方向?
這是問題 - 如果我在橫向模式下啓動應用程序,控件不在應該出現的位置,它們保留自己的位置,如應用程序是縱向模式。我試圖測試這一點,這裏是我發現 -
在viewDidLoad和ViewWillappear我得到的信息,應用程序是在肖像模式,雖然應用程序是橫向模式。鑑於確實出現了它被設置爲正確的價值 - 景觀模式。問題是我希望這些組件被設置在適當的位置,在視圖出現之前(如果我不能清楚地看到它們在屏幕上重新定位)。
什麼是正確的方法來處理?
編輯: 在viewDidLoad中和viewWillAppear中,我把這:
orientation = [self getOrientation];
if (orientation == OrientationsLandscape) {
NSLog(@"Landscape");
}
else {
NSLog(@"Portrait");
}
這裏是實現[getOrientation]
- (int) getOrientation {
int currentOrientation = [UIApplication sharedApplication].statusBarOrientation;
if (UIInterfaceOrientationIsPortrait(currentOrientation)) return OrientationsPortrait;
else return OrientationsLandscape;
}
和枚舉DEF:
typedef enum {
OrientationsLandscape = 0,
OrientationsPortrait
} Orientations;
現在,如果設備是橫向模式,我嘗試安裝我的應用程序,我會得到2次印有「人像」,而不是「風景」
我有同樣的問題,但只有當設備面朝上。如果我將它放在手中,傾斜,則可以識別方向。如果我調用初始化後進行測試的計時器,它就可以工作。但是在applicationDidFinishLaunching和我的計時器調用之間,我有一個簡短的白色屏幕......你找到了解決方案嗎? – Martin 2012-12-07 09:45:08
我在這裏發佈瞭解決方案:http://stackoverflow.com/a/13763842/127493 – Martin 2012-12-07 13:17:07