2011-04-11 2 views
1

간단한 탐색 기반 앱을 만들었습니다. 그것은 잘 아이폰에서 작동하지만 ipad 3.2 시뮬레이터 및 장치에서 작동하지 않습니다.ipad 3.2 용 rootViewController 설정이 없습니다.

(applicationdidfinish 이벤트);

MainViewController *viewController = [[MainViewController alloc] initWithNibName:@"MainView" bundle:nil]; 
[self.navigationController pushViewController:viewController animated:NO]; 
self.window.rootViewController = self.navigationController; 
[viewController release]; 

는이 라인 말합니다 :

self.window.rootViewController = self.navigationController; 

[UIWindow setRootViewController :] : 인식 할 수없는 선택기 예를 0x4c22dd0

로 전송하지만, 아이 패드 4.2 이상에서 작동합니다.

어떻게 ipad 3.2에서 해결할 수 있습니까?

답변

5

UIWindow에 iOS < 4.0의 rootViewController 속성이 없습니다. 따라서 버전을 확인합니다 (구글) 다음 중 하나를 rootViewController를 설정하거나 추가해야합니다있는 navigationController의 view 버전을 사용자가 :

[self.window addSubview:self.navigationController.view]; 
을 실행에 따라 아래와 같이 창에 하위 뷰, 같은

quick edit : rootViewController 속성을 사용할 수 있는지 확인하려면 [self.window respondsToSelector:@selector(setRootViewController)]이 TRUE 또는 FALSE를 반환하는지 확인할 수 있습니다.

+0

큰, 모든 iOS 버전에 적용됩니다. 나는 내가 버전을 확인할 필요가 없다고 생각한다. 왜냐하면 나는 IB에서 뷰 컨트롤러를 설정하지 않기 때문이다. 감사... – fulberto100

1

올바른 방법은 (잊지 마세요 ":")입니다

if ([self.window respondsToSelector:@selector(setRootViewController:)]) 
    self.window.rootViewController = self.tabBarController; 
else 
    [self.window addSubview: self.tabBarController.view];