2014-06-23 62 views
0

我有一個標籤欄應用程序。每個視圖控制器上的旋轉都很好。旋轉視圖控制器不能在標籤欄中查看應用程序

我在景觀,如果我去查看控制器B和旋轉到肖像,然後回去查看控制器A,A的視圖沒有被旋轉 - 因爲它沒有得到事件 - 所以UI都沒有比例,我需要旋轉設備進行分類。不好。

我可以偵聽UIDeviceOrientationDidChangeNotification,但我不想手動調用旋轉方法(willRotate,willAnimate,didRotate)......因爲這顯然是脆弱的。

我錯過了什麼讓它正常工作?

+0

你能分享一些代碼以獲取更多信息嗎?你有沒有繼承tabBar? – Maurice

回答

0

我認爲問題是我的視圖有需要旋轉運行的代碼,只發生在旋轉通知方法中。

我解決這個問題的方法是:

- (void) deviceOrientationChanged:(NSNotification *)notification { 
    if (self.isViewLoaded && !self.view.window) { 
     // viewController view is loaded, but not visible 
     [self viewDidRotateOffscreen]; 
    } 
} 
  1. 的willRotate,willAnimate中的代碼,didRotate被拉進一個單獨的方法。
  2. 我聽了UIDeviceOrientationDidChangeNotification,並設置一個布爾標誌viewDidRotateOffscreen(見上面的代碼)
  3. 在viewWillAppear中,我檢查BOOL標誌viewDidRotateOffscreen,如果這是真的,我跑,我只是在步驟1
  4. 提到的方法
相關問題