0

無論何時用戶將iOS設備從縱向旋轉到橫向,縱向視圖是TabBar和NavigationController內的視圖,我都想要顯示全屏橫向視圖。如何在UITabBarController-> UINavigationController中的ViewController上獲取旋轉事件?

然而,willRotateToInterfaceOrientation:時間:不會被調用。我也測試了將ViewController添加爲UIDeviceOrientationDidChangeNotification事件的Observer,但是此通知也以未定義的方向調用。

給定任務的最佳和最簡單的方法是什麼?

回答

1

也有UIApplicationWillChangeStatusBarOrientationNotificationUIApplicationDidChangeStatusBarOrientationNotification通知。

userInfo字典包含一個封裝UIInterfaceOrientation值一個NSNumber對象。使用UIApplicationStatusBarOrientationUserInfoKey訪問此值

[[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(didRotate:) 
               name:UIApplicationDidChangeStatusBarOrientationNotification 
               object:nil]; 

- (void) didRotate:(NSNotification *)notification{ 
    NSNumber *num = [[notification userInfo] objectForKey:@"UIApplicationStatusBarOrientationUserInfoKey"]; 
    NSLog(@"%d", [num intValue]); 
} 
+0

感謝很好的提示。但是,從不調用UIApplicationWillChangeStatusBarOrientationNotification,因爲TabBarController不直接響應方向更改(它只允許縱向),因此狀態欄永遠不會旋轉。 – lambruscoAcido

相關問題