0

스토리 보드를 사용하여 만든 iPad 응용 프로그램이 있습니다. 별도의 .xib 파일을 사용하여 만든 하나의 viewController를 만들었습니다. 이 viewController는 주 응용 프로그램에서 호출해야하고 나중에 주 응용 프로그램으로 돌아가려면 닫아야합니다. 나는 이것을 지금까지 할 수있다. 내 문제는 탐색 컨트롤러를 사용하여이 보조 뷰 컨트롤러를 호출하기 때문에이 뷰 컨트롤러를 가로 모드로로드 할 수 없다는 것입니다. 세로 모드에서만로드 할 수 있습니다. 이 포럼을 통해, 그리고 내가 한 모든 연구에서, 나는 네비게이션 컨트롤러를 서브 클래스 화해야한다는 것을 알게되었고, 그 다음에는이 보조 뷰 컨트롤러를 가로 모드로로드 할 수있게되었습니다.외부보기를로드하기 위해 탐색 컨트롤러의 서브 클래스를 시도하는 중 iOS의 가로 모드에서 별도의 .xib 파일이있는 컨트롤러

내 보조보기 컨트롤러 (NextViewController)에서 다음과 같은 방법을 포함했다, 그러나 아무런 효과가 없습니다 : NextViewController를 호출 호출의 ViewController (MainViewController)의 코드가

여기
-(BOOL)shouldAutorotate 
{ 
    return YES; 
} 

-(NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskLandscape; 
} 

입니다있는 내가 지적

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 

    _nextView = [[NextLandscapeViewController alloc] initWithNibName:@"NextLandscapeViewController" bundle:nil]; 
    [_nextView setDelegate:(id)self]; 
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:_nextView]; 
    [self presentViewController:navigationController animated:YES completion:nil]; 

} 

, 내가 필요로하는 솔루션은 네비게이션 컨트롤러를 하위 클래스이지만, 솔직히 전에 이런 짓을 적이없는, 그리고도 수행 차례 대신 원하는 풍경 모드, 세로 모드에서 나타나고있다 난 어떻게하는지 알아 그것을하기 위해. 다른 사람이 나에게 NextViewController를 호출하여 가로 모드로 표시되도록 할 수있는 방법을 보여줄 수 있습니까?

미리 답변 해 주신 모든 분께 감사드립니다.

답변

1

방향에 대한 탐색 컨트롤러에서 서브 클래스의 경우 (예를 들어)이 코드를 시도 할 수 있습니다 :

// .h - file 
@interface MyNavigationController : UINavigationController 

@end 

// .m - file 
#import "MyNavigationController.h" 

@implementation MyNavigationController 

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

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

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation 
{ 
    return [self.topViewController preferredInterfaceOrientationForPresentation]; 
} 

@end 

UPD : (iOS6의에이 코드가 작동) 프롬프트 응답에 대한

+0

정말 감사합니다. 코드가 작동하지만 한 가지 사소한 결함이 있음을 알았습니다. 그것은 내가 처음 실행했을 때와 똑같은 방식으로 작동하지만, 후속 실행에서는 전체 응용 프로그램이 이제 가로 모드로 나타납니다. 가로 모드에서만 호출되도록 뷰 컨트롤러 만 필요합니다. 이 문제를 해결할 수있는 방법이 있습니까? – syedfa

+0

흠 .. 잘 모르겠다. 다음 방식으로 수행했다. 메소드 supportedInterfaceOrientations에서 세로 방향으로 돌아갈 때 Coommon viewcontroller를 만든다. 그로부터 서브 클래 싱 된 모든 VC는 수평 방향을 필요로하는 일부를 기대합니다. 제 경우에는 작동합니다. 시도해 볼 수 있습니다. – frankWhite