我需要根據方向更改View的圖像背景。對於這一點,我使用viewWillAppear
的statusBarOrientation方法:statusBarOrientation在viewWillAppear上的錯誤值
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
UIInterfaceOrientation currentOrientation = [[UIApplication sharedApplication] statusBarOrientation];
if (UIInterfaceOrientationIsPortrait(currentOrientation)) {
NSLog(@"PORTRAIT");
} else if (UIInterfaceOrientationIsLandscape(currentOrientation)) {
NSLog(@"LANDSCAPE");
}
}
的問題是,控制檯總是顯示人像,甚至當iPad在橫向模式舉行。 viewDidAppear
中的代碼正常工作,但已經太晚了,用戶可以看到圖像的更改。這讓我認爲statusBarOrientation的正確狀態在viewWillAppear
中仍然不可用,但我已經閱讀過其他一些問題,這些代碼應該在那裏工作。
什麼更奇怪的是,在viewWillTransitionToSize:你可以查詢方向,如果你旋轉手機兩次(回到它的viewDidLoad位置),statusBarOrientation會給你正確的答案。儘管它在viewDidLoad中給出了不同的答案,現在該設備與當時的方向相同! –