2012-08-14 2 views
0

저는 Apple의 SimpleDrillDown 예제를 실험 해본 결과 탭바에 넣으려고했습니다. 문제는 뷰가 표시되지 않는다는 것이며, App Delegate에서 다음 코드가 원인이라는 것을 알고 있습니다. 나는 그것을 tabbar에 맞게 변경하는 데 어려움을 겪고 있으며 몇 가지 조언을 고맙게 생각합니다.TabBarController를 사용한 SimpleDrillDown 예제

- (void)applicationDidFinishLaunching:(UIApplication *)application { 

    // Create the data controller and pass it to the root view controller. 
    UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController; 
    RootViewController *rootViewController = (RootViewController *)[[navigationController viewControllers]objectAtIndex:0]; 

    DataController *controller = [[DataController alloc] init]; 
    rootViewController.dataController = controller; 
    self.dataController = controller; 
} 

나는 그것을 대체 한 다음 만이 줄 EatCatTVC *rootViewController = (RootViewController *)[[navigationController viewControllers]objectAtIndex:0];는이 라인에 존재하지 않는 객체

EatCatTVC *rootViewController = (RootViewController *)[[navigationController viewControllers]objectAtIndex:0]; 

에 액세스하기 때문에

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // Override point for customization after application launch. 
    UITabBarController *tabBar = (UITabBarController *)self.window.rootViewController; 
    // Create the data controller and pass it to the root view controller. 

    EatCatTVC *rootViewController = (RootViewController *)[[navigationController viewControllers]objectAtIndex:0]; 
    DataController *controller = [[DataController alloc] init]; 
    rootViewController.dataController = controller; 
    self.dataController = controller; 
    return YES; 
} 
+0

'[self.window makeKeyAndVisible]; – Toastor

+0

원래 샘플 코드에는 아무 것도 작동하지 않습니다. – Jadzia

+0

컨트롤러에 대해 navigationController를 요청했지만 더 이상 업데이트 된 버전에 존재하지 않습니다. –

답변

1

귀하의 코드가 실패 오류가 발생합니다 navigationController은 "수정 된"버전에 없습니다.

"rootController"가 UITabBarController 클래스로 설정되어 있는지 확인하십시오 (인터페이스 작성기에서 설정했다고 가정).

그리고 UITabBarController' instance with (for instance) UIViewController 인스턴스를 제공하려면 setViewControllers:animated:을 사용하십시오.

+0

고마워요. 스토리 보드로 설정했기 때문에 테이블 뷰와 NSArrays로 "작업"했지만 단순한 내리막은 내 앱에 필요한 것입니다. 첫 번째 탭은 상세보기이고, 두 번째 탭은 테이블 뷰이지만 데이터는로드되지 않습니다. rootController는 스토리 보드의 tabbarcontroller이며 UITabBarController로 설정됩니다. 나는 setView를 시도 할 것이다. – Jadzia

+0

좋지 않다 - 나는 그 코드를 작동시키지 못했고, 지금은 코드와 혼동하고있다.하지만 도움을 청하는 것에 감사한다. – Jadzia

+0

다음과 같은 코드를 가지고 있지만 "No visible @interface for eatCatTVC 셀렉터 'viewcontrollers' '(보이드)는 applicationDidFinishLaunching 선언 (UIApplication *) 애플리케이션 {UITabBarController가 을 tabBarController * = self.window.rootViewController; eatCatTVC EatCatTVCnav * = [tabBarController viewControllers] objectAtIndex : 0] eatCatTVC * eatCatTVC = [[EatCatTVCnav viewControllerers] objectAtIndex : 1]; DataController * 컨트롤러 = [[DataController alloc] init]; eatCatTVC.dataController = 컨트롤러; self.dataController = 컨트롤러; }' – Jadzia

관련 문제