2011-10-27 1 views
1

새로운 Xcode 4.2로 새로운 "Tab Bar Project"를 만들었습니다. UITabBar로 작업하는 "새로운"방법은 다릅니다. Xcode는 UITabBarController를 사용하여 xib 파일을 만들지 않지만 코드를 통해 모든 작업을 수행합니다. 자, 해보 죠.UITabBarController로 인터페이스 회전

그래서 didFinishLaunchingWithOptions 내 코드는 다음과 같습니다

UIViewController *viewController1, *viewController2, *viewController3; 
UINavigationController *nav1, *nav2, *nav3; 

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { 

    viewController1 = [[gemboy_iphone alloc] initWithNibName:@"vc1" bundle:nil]; 
    viewController2 = [[concerti_iphone alloc] initWithNibName:@"vc2" bundle:nil]; 
    viewController3 = [[discografia_iphone alloc] initWithNibName:@"vc3" bundle:nil]; 

    nav1 = [[UINavigationController alloc] initWithRootViewController:viewController1]; 
    nav2 = [[UINavigationController alloc] initWithRootViewController:viewController2]; 
    nav3 = [[UINavigationController alloc] initWithRootViewController:viewController3]; 

} 
else { 
    //same thing for the iPad version 
} 
self.tabBarController = [[UITabBarController alloc] init]; 
self.tabBarController.viewControllers = [NSArray arrayWithObjects:nav1, nav2, nav3, nil]; 
self.window.rootViewController = self.tabBarController; 
[self.window addSubview:self.splash.view]; 
[self.window makeKeyAndVisible]; 
return YES; 

을 그리고 그것은 작동합니다.

내 세하는 .m 파일 vc1.m, vc2.m 및 vc3.m (그리고 내 아이 패드 UIViewControllers는) 내가 아이폰을 회전 할 때

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return YES; 
} 

는, 단지 회전 문제가되는이 방법을 가지고 상태 표시 줄이 아니라 TabBarController!

이유를 알고 계십니까? 감사합니다.

+0

3 개의보기 컨트롤러 클래스가 gemboy_iphone, concerti_iphone 및 discografia_iphone이라고하는 것은 드문 일이지만 vc1.m, vc2.m 및 vc3.m 파일에 있습니다. 맞았습니까? XCode는 이름이 펜촉 이름과 비슷하기 때문에 파일을 찾지 못합니다. 클래스에 실제로 클래스가 포함되어 있으면 해당 파일의 소유자 유형을 해당 클래스로 설정해야합니다. – morningstar

답변

2

절대적으로 UITabBarController를 하위 클래스로 만들 필요는 없습니다.

탭 표시 줄 컨트롤러는 모든 뷰 컨트롤러가 shouldAutorotateToInterfaceOrientation을 구현하고 동일한 방향으로 YES를 반환하면 잘 회전됩니다.

탭 응용 프로그램 템플릿을 사용하여 Xcode 4.2에서 새 프로젝트를 만들면 자동으로 잘 회전하는 것을 볼 수 있습니다.