2013-05-10 67 views
0

我使用這個類支持在iOS設備自動旋轉6奇怪iOS6的自動旋轉的Bug

@implementation UINavigationController (RotationIn_IOS6) 

-(BOOL)shouldAutorotate 
{ 
    NSLog(@"Last Object is %@",[[self.viewControllers lastObject] description]); 
    return [[self.viewControllers lastObject] shouldAutorotate]; 
} 

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

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation 
{ 
    return [[self.viewControllers lastObject] preferredInterfaceOrientationForPresentation]; 
} 

我的應用程序設置是這樣用的導航控制器旋轉此

  1. 顯示密碼屏幕工作正常,這兩個(模擬器,設備)。
  2. 驗證用戶,並顯示主屏幕旋轉只能在模擬器不是設備

-(BOOL)shouldAutorotate

在主屏幕 任何人知道如何解決這個實施?

+1

實際問題是什麼? – 2013-05-10 10:56:53

+0

您是否已在您的「主屏幕」視圖控制器中實施了' - (NSUInteger)supportedInterfaceOrientations'? – 2013-05-10 11:12:30

+0

設備的iOS版本是什麼? – 2013-05-10 11:24:50

回答

1

根據this question的回答,使用Category來重寫Cocoa類中的方法是一個壞主意。 '關於在運行時使用哪種方法實現的行爲未定義'。

我使用UINavigationController的子類來實現你正在嘗試做的事情,並且沒有任何問題,所以我建議你嘗試一下。

+0

相同的代碼工作在iPad Mini ios 6.0.1 – 2013-05-10 11:58:51

+0

不同的硬件... 'undefined'行爲... – 2013-05-10 12:13:34

+0

也許是由於iPhone是JailBroken ...反正會在非越獄設備上測試,然後在這裏更新這個帖子 – 2013-05-10 12:17:35