2014-04-25 2 views
2

내 응용 프로그램은 ECSlidingViewController 2.0을 슬라이딩 메뉴로 빌드합니다. 단 하나의 UIViewController에 대한 회전을 비활성화하고 싶습니다. 내 모든 UIViewController는 UINavigationController로 시작합니다.ECSlidingViewController 2.0 하나의 UIViewController에 대해 회전 사용 안 함

UINavigationController의 SubClass를 만들어 메서드를 구현하고 sotryboard의 모든 UINavigationController에 하위 클래스를 할당합니다. 하지만 작동하지 않습니다. 코드가 트리거되지 않은 것처럼 보입니다.

내부 MyNavigationController.m :

#import "MyNavigationController.h" 
#import "ContactUsViewController.h" 

@interface MyNavigationController() 

@end 

@implementation MyNavigationController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 
} 

- (BOOL)shouldAutorotate { 

    NSLog(self.topViewController.description); 
    if ([self.topViewController isMemberOfClass:[ContactUsViewController class]]){ 
     return NO; 
    }else{ 
     return YES; 
    } 

} 

@end 

ContactUsViewController 내가 회전하지 않을 UIViewController에 있습니다.

답변

3

5 단계 (I 스토리 보드와 IOS 7 실행하고)

  1. 서브 클래스 ECSlidingViewController. (예 : MyECSlidingViewController)
  2. MyECSlidingViewController에서 shouldAutorotate 및 supportedInterfaceOrientations를 직접 만듭니다.
  3. SubClass는 UINavigationController이며 기존의 모든 UINavigationController에 할당합니다. (예 : MyNavigationController)
  4. MyNavigationController에서 shouldAutorotate 및 supportedInterfaceOrientations를 직접 만듭니다.
  5. UIViewController에서 세로 전용으로 설정하려고합니다.

MyECSlidingViewController.m

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

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

} 

MyNavigationController.m

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

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

YourViewController.m

- (BOOL)shouldAutorotate 
{ 
    return NO; 
} 

- (NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskPortrait; 
} 

는 희망이 도움이!