2014-02-14 61 views
1

我正在使用SWRevealViewController實現滑動菜單。我的應用程序正在以portait模式運行。但我希望在橫向模式下打開視圖控制器。 此視圖控制器正在打開點擊滑動菜單的一個視圖。 我在Stackoverflow上搜索,但是都需要UINavigation控制器被設置爲AppDelegate中的rootViewController。 但在我的情況下,SWrevealViewController被設置爲窗口的rootviewController。 請給我一些線索來幫助我。如何使用滑動菜單爲單個視圖設置橫向方向?

回答

0

試試這個:

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

通過,

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return UIInterfaceOrientationIsPortrait(interfaceOrientation); 
} 
+0

謝謝,但我在Project Explorer> General setting中設置了portait模式。這裏有任何需要改變的地方。 – KDRocks

+0

是的,如果你想橫向排列,你需要將它設置爲 –

+0

好的。但在編寫Above方法之後,它會給出錯誤重複的方法,並且在Project Explorer設置中設置了橫向模式後,所有視圖都將以lanscape或portait模式開始旋轉。但我不想旋轉任何其他視圖 – KDRocks

1

我已經解決了通過,這將在似乎是在橫向模式視圖中使用波紋管代碼我的問題。

- (NSUInteger)supportedInterfaceOrientations 
{ 

    return UIInterfaceOrientationMaskLandscapeLeft; 
} 


-(void)viewDidAppear:(BOOL)animated 
{ 
    if(UIDeviceOrientationIsPortrait(self.interfaceOrientation)){ 
     if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)]) 
     { 
      objc_msgSend([UIDevice currentDevice], @selector(setOrientation:), UIInterfaceOrientationLandscapeLeft); 
     } 
    } 
} 


-(void)viewDidDisappear:(BOOL)animated{ 

    if(UIDeviceOrientationIsLandscape(self.interfaceOrientation)){ 
     if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)]) 
     { 
      objc_msgSend([UIDevice currentDevice], @selector(setOrientation:), UIInterfaceOrientationPortrait); 
     } 
    } 
} 
+0

看起來你正在調用私人API,對嗎? – Marc

+0

不,我是SWRevealViewController庫,用於創建滑動Facebook,如滑動菜單,它是一個開源的 – KDRocks

+0

@MarcMosby請告訴我,如果我做錯了。 – KDRocks