[英]iOS 6 - (BOOL)shouldAutorotate not getting called for navigation controllers pushed viewControllers
[英]What's the point of iOS 6 - (BOOL) shouldAutorotate?
據我所知,iOS 6上的正確做法是編寫這樣的代碼來處理自動旋轉:
// iOS 6
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskPortrait;
}
而不是寫作
// pre-iOS 6 support
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
BOOL retVal = UIInterfaceOrientationIsLandscape(toInterfaceOrientation);
return retVal;
}
說實話,我認為iOS 6之前的版本要清楚得多:我不明白有兩種方法可以處理自動旋轉,特別是因為我看過-(BOOL) shouldAutorotate
在所有例子中都返回YES
。 我錯過了什么嗎?
新API允許您保存呼叫以獲取當前設備方向:兩個問題,即
通常是靜態回答,而不是打電話來檢查當前的方向。 當屏幕具有由不同視圖控制器控制的多個視圖時,節省變得更加重要。
由於iOS正在調用應用程序的shouldAutorotate
來響應加速度計的事件,因此它已經知道新的方向; 如果你的應用回答'是',那么iOS可以根據支持的列表檢查當前方向,並在沒有你的應用查詢當前方向的情況下做出決定。
在不太可能的情況下,您的應用需要根據新的方向決定自動輪換,新的API並不比舊的API差,所以這是一個“勝利”的情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.