0

앱이 내 애플 리케이션 델리게이트에로드 될 때 viewcontroller를 초기화하는 데 문제가 있습니다. viewcontroller로드 괜찮지 만, 그것은 아래에있는 tabbar 겹치는. 다른 뷰 콘트롤러를 만들어서 앱 델리게이트에로드해야합니까? 현재 TabBarController는 내 MainWindow.xib에 설정되어 있습니다.이 탭에는 내비게이션 컨트롤러가 포함되어 있으며 그 내부에는 viewController가 있습니다. 내 didFinishLaunchingWithOptions에서 여기 (내비게이션 컨트롤러에서) 내 viewcontroller 내 애플 대리인에서로드 할 때 tabbar가 겹칩니다.

내 코드는

...

나는이 :

sub = [[SubGabViewController alloc] initWithNibName:@"SubGabViewController" bundle:nil]; 
nav = [[UINavigationController alloc] initWithRootViewController:sub]; 
[window addSubview:nav.view]; 

그것은 같은 것을해야 하는가?

sub = [[SubGabViewController alloc] initWithNibName:@"SubGabViewController" bundle:nil]; 
nav = [[UINavigationController alloc] initWithRootViewController:sub]; 
[newViewController.view addSubview:nav.view]; 

고마워요!

답변

1

당신이 UITabBarController가를 사용하려는 경우, 각 탭은 자신의 루트 뷰 컨트롤러를 (이들도 UINavigationController가 객체가 될 수 있습니다)가 있습니다. 당신은 self.tabBarController에 대한 속성 (난 당신이 탭 바 응용 프로그램을하고 있다면이이 엑스 코드에서 기본적으로 작성되는 생각은) 다음 한 가정 : setViewControllers와

sub = [[SubGabViewController alloc] initWithNibName:@"SubGabViewContrller" bundle:nil]; 
nav = [[UINavigationContoller alloc] initWithRootViewController:sub]; 
[self.tabBarController setViewControllers:[NSArray arrayWithObject:nav] animated:NO]; 
self.window.rootViewController = self.tabBarController; 
// Clean up memory here... only if you don't need references to them 
[sub release]; 
[nav release]; 

: 애니메이션 : 당신은 아마보기를 추가로 포함해야 컨트롤러를 NSArray에 추가합니다. 그렇지 않으면 하나의 항목 만 포함하는 탭 막대로 끝납니다!

+0

감사합니다. 아주 가깝습니다. 하지만 새로운 탭바를 만드는 대신 인터페이스 빌더에서 이미 만든 Tabbar에 추가 할 수 있습니까? 그것을 IBOutlets와 연결함으로써? – Aaron

+0

신경 쓰지 마세요, 고맙습니다! – Aaron

0

[window addSubview:tabBarController.view]; 잘 될 것입니다 ......

오히려 코드를 사용하여 탐색 컨트롤러를 추가하는 대신 ..... 당신은 .... 인터페이스 빌더에서 추가 인터페이스 빌더에서 tabBarItem를 제거하고 추가해야 거기에 navigationController 다음은 window에 추가 할 수 있도록 appDelegatetabBarController의 출구를 만드는 것이 네비게이션 컨트롤러에 대한 viewController ..........

을 설정합니다. 인터페이스 작성기에서 구성 요소를 연결하는 것을 잊지 마십시오.

감사합니다,

관련 문제