2014-07-07 129 views
1

我在自動佈局方向上遇到問題。只要我推視圖控制器採取控制從rootVC這一行代碼自動佈局方向不起作用

fooBar *foo = [[fooBar alloc]initWithNibName:@"fooBar" bundle:nil]; 
    [self.navigationController pushViewController:foo animated:NO]; 

我的Foobar的視圖控制器具有自動佈局,所以我應該能夠得到橫向當我打開手機,但手機仍然有待在肖像模式下。

來也怪的是我調試和方法,下面不工作,..(我把他們的Foobar VC)

(BOOL) shouldAutorotate{ 
return YES; 
} 
(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation 
{ 
//returns true if want to allow orientation change 
return TRUE; 
} 

構建選項的ios SDK 6.0,Xcode的5.1

回答

2

這可能是因爲導航控制器不轉發這些方法調用。如果你想讓它,你將需要創建自己的自定義導航控制器,並遵循這個模式:

- (BOOL)shouldAutorotate 
{ 
    return [self.visibleViewController shouldAutorotate]; 
} 

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

因此,在總結,創建你自己的具體實現的UINavigationController,然後轉發上述兩種方法的任何視圖控制器當前可見。然後你應該注意到你的fooBar類中調用的方法。

+0

我已經嘗試了你在新項目中通過從導航控制器推FooVC而不是**它工作**。它似乎導航控制器處理方向的東西。但是,這不能在我的主要項目中失敗。我的項目比較舊(這是iOS 5),我們嘗試移植到自動佈局,所以也許這就是爲什麼.. – mert

0

Orientation settings

請檢查項目設置是否檢查了這些方向。

+0

是的,我沒有錯過plist和一般選項的設備方向選項。 – mert