2011-12-03 5 views
0

저는 iPhone 개발에 익숙하지 않습니다. 이 창을 하위보기로하여 창과 탐색 컨트롤러가있는 간단한 응용 프로그램을 만들려고했습니다. 문제는 이것입니다 : 응용 프로그램을 시작할 때 하위보기가로드되지 않았습니다. 검은 화면이있는 창문이 있습니다. 보기 컨트롤러를로드하려면 응용 프로그램을 종료하고 두 번째로 실행 한 다음 내비게이션 컨트롤러가있는 하위보기가 있어야합니다. 검은 화면이 문제가 아닌지 확인하기 위해 창에 버튼을 직접 추가했지만 시작시 버튼을 보았습니다.내 응용 프로그램을 처음 시작할 때 하위보기가로드되지 않았습니다.

이것은 내 AppDelegate에에있는 코드 :

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]autorelease]; 
    [self.window addSubview:_navigationController.view]; 
    [self.window makeKeyAndVisible];  
    return YES; 
} 

이 문제에 대한 해결책이 있습니까?

감사합니다.

답변

2

뷰 계층 구조 설정이 필요합니다. 윈도우의 rootViewController는 UINavigationController가됩니다. UINavigationController는 viewController의 계층 구조를 제어하므로 인스턴스화 할 때 rootViewController를 지정해야합니다. 이것은 종종 UITableView의 하위 클래스입니다.

윈도우를 할당/초기화했기 때문에 UINavigationController가있는 XIB/NIB가없고 UITableViewController와 같은 rootViewController가 있다고 가정합니다. 또한 네비게이션 컨트롤러의 뷰를 추가하는 대신, rootViewController를 윈도우에 할당해야합니다. iOS4 이후로 이것은 일을하기 위해 선호되는 방법입니다. here도 참조하십시오. 이 코드를보십시오 : 당신이 XIB를 사용하는 경우

YourViewController *yourViewController = /* code for alloc/initing your viewController */ 
_navigationController=[[UINavigationController alloc] initWithRootViewController:yourViewController ] 
self.window.rootViewController=_navigationController; /* instead of using [self.window addSubview: _navigationController.view] */ 
[self.window makeKeyAndVisible]; 

/NIB는, 당신은 _navigationController가 XIB 파일까지 유선하고 rootViewController이기로의 ViewController의 서브 클래스가 유선이되어 있는지 확인해야합니다.

굿 럭

+0

감사합니다. 그러나 여전히 같은 문제입니다. –

+0

UINavigationController를 인스턴스화 했습니까? – timthetoolman

+0

어디서? 어떻게해야합니까? 감사합니다. –

관련 문제