0

你好我有一個應用程序,其中是控制器的下列層次結構:兒童導航和TabBar控制器取向的

  1. 的UITabBarController
  2. 導航控制器,帶有表的ViewController
  3. 的UIView控制器

的情況如下。我想讓所有導航控制器都處於縱向狀態,並且只有最後一個控制器應處於橫向狀態。要正確左轉。

現在的問題是: 當我推新控制器(最後一個)時,我希望方向左後方。 我已經覆蓋了方法shouldAutorotate和shouldAutorotateToInterfaceOrientation。我還用MaskLeft覆蓋了方法supportedInterfaceOrientations?

我錯過了什麼嗎?

我還實現了導航和tabbar控制器中的所有旋轉方法。 在使用TabBar:

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    // You do not need this method if you are not supporting earlier iOS Versions 
    return [self.selectedViewController shouldAutorotateToInterfaceOrientation:interfaceOrientation]; 
} 

-(NSUInteger)supportedInterfaceOrientations 
{ 
    return [self.selectedViewController supportedInterfaceOrientations]; 
} 

-(BOOL)shouldAutorotate 
{ 
    return YES; 
} 

,並在導航控制器:

-(NSUInteger)supportedInterfaceOrientations 
{ 
    return [self.topViewController supportedInterfaceOrientations]; 
} 

-(BOOL)shouldAutorotate 
{ 
    return YES; 
} 

任何幫助將不勝感激。呈現視圖控制器,全屏模式下

這些都是在最後一個控制器

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft); 
} 

-(BOOL)shouldAutorotate 
{ 
    return YES; 
} 

-(NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskLandscapeLeft; 
} 
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { 
    return UIInterfaceOrientationLandscapeLeft; 
} 

回答

1

還有一個你可能要重寫

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { 
    return UIInterfaceOrientationLandscapeLeft; 
} 

系統更加方法imlemented方法調用此方法。當您的視圖控制器支持兩個或更多個方向,但內容在其中一個方向上顯示效果最佳時,可以實現此方法。

+0

此解決方案非常適合呈現視圖控制器!但是如果我想推控制器?有導航控制器的邏輯? :-)有沒有類似的解決方案? :-) – 2013-04-08 07:52:07

+0

我實際上沒有嘗試與推..它不工作與推? – Stas 2013-04-08 07:53:09

+0

當我推控制器的方法沒有被調用。 :/ – 2013-04-08 07:54:21