2014-09-27 5 views
0

을 변경합니다. 내 목표는 B viewcontroller 항상 세로 모드에서만 A에서 B로 탐색 할 때. 나는 navigationcontroller에서 B viewcontroller에 대한 제한을 만든다.탐색 방향을 내가 두 viewcontrollers A를 사용하고, B는 세로 모드에있을 때 B. A는, 방향의 가로 및 세로 모두 지원 IOS 응용 프로그램을 개발하고

- (BOOL)shouldAutorotate 

{ 
    _navigation = (MBNavigationController *) self.frontViewController; 

    id currentViewController = [_navigation visibleViewController]; 

    if ([currentViewController isKindOfClass:[MBViewController class]]) 
     return NO; 

    return YES; 
} 

A가 세로 방향이고 B로 이동하면 모든 것이 정상적으로 작동합니다. 그러나 A가 가로 모드에 있고 똑같은 경우 B 컨트롤러보기의 일부가 장면 밖에 있습니다. 올바른 해결책을 찾도록 도와주세요.

답변

0

한 가지 가능한 솔루션은

// sysversion>=ios6 
- (BOOL)shouldAutorotate 
{ 
    return NO; 
} 
// sysversion<=ios5 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return NO; 
} 

- (NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskPortrait; 
} 
+0

당신이 세부 사항을 설명 할 수있는 다른있는 navigationController와 B의 ViewController 존재? 이런 경우 어떤 스토리 보드 트리를 가져야합니까? – user3816018

+0

두 개의 탐색 컨트롤러. 탐색 컨트롤러 하나의 루트보기 컨트롤러가보기 컨트롤러입니다. 두 개의 루트보기 컨트롤러는 B보기 컨트롤러입니다. 'shouldAutorotate'를 따로 설정하십시오 – dopcn