2014-03-18 102 views

回答

13

這裏是解決方案:

1)嵌入的LandscapeViewController在子類NavigationController和使用模式賽格瑞它從你PortraitViewController連接。

LandscapeViewController embedded into a new LandscapeNavigationController

2)子類的UINavigationController

LandscapeNavigationController.m

-(BOOL)shouldAutorotate 
{ 
    return NO; 
} 

-(NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskLandscapeLeft; 
} 

3)不要忘記從我的酒吧BUTTOM項目操作解散你的模式VC(在這種情況下)

- (IBAction)goBack:(id)sender 
{ 
    [self.navigationController dismissViewControllerAnimated:YES completion:nil]; 
} 
+3

使用類似這樣的類別是一個可怕的想法 - 它在碰撞事件上沒有記錄的行爲。在使用類別時應始終使用前綴方法來避免這種情況。在這種情況下對導航控制器進行子類化將是更好的解決方案。 –

+0

你說得對@OliverAtkinson。我正在改變我的解決方案。我編輯我的答案 –

+2

這些類別的重點是重寫。但我會和一個子類一起去。 –