2010-06-20 3 views
0

Xcode에서 새로운 iPhone "보기 기반 응용 프로그램"을 만들었습니다. 그런 다음 새로운 "UIViewController subclass"를 추가하고 "사용자 인터페이스 용 XIB와 함께"확인했습니다. 이제는 모든 변수와 메시지 처리기를 연결 한 후 다음 코드를 사용하여 새 컨트롤러를 스택에 푸시 할 수 없습니다.iPhone : 새로운 "보기 기반 응용 프로그램"만들기 =보기 컨트롤러 없음?

[self.navigationController pushViewController:self.cabinetController 
            animated:YES]; 

모든 변수와 전망이 그래서 내가 생각할 수있는 모든는 "있는 navigationController"에 그것을 밀어 내가 그 일을하고 그 방법은. 내가 여기에 놓친 거지 뭔가가 있다는 것입니다, 제대로 매혹 ? (나는 iPhone과 Apple 프로그래밍에 대해 매우 익숙하다. 그래서 아마도 매우 간단한 감독 일 것이다.)

나는 정보가 충분하지 않다는 것을 알고있다 ... 여기에 프로젝트에 대한 링크가있다. 그것은 교육적인 운동으로 창조적 인 수업을합니다.

http://files.me.com/nippysaurus/4yqz8t

+0

우리가 당신의 문제를 이해하기 원하면 더 많은 코드를 제공해야합니다 ... –

+0

@Michael : 죄송합니다, 여기에 프로젝트 링크가 있습니다. http://files.me.com/nippysaurus/4yqz8t – Nippysaurus

답변

0

appDelegate에서 UINavigationController 인스턴스 변수를 만든 다음 기존 viewController를 탐색 컨트롤러의 rootViewController로 사용합니다.

순수 코드에서 UITableViewController를 사용하면 (xibs도 사용할 수 있습니다.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

    // Create root view and navigation controller 
    UITableViewController *rootViewController = [[[UITableViewController alloc] initWithStyle:UITableViewStyleGrouped] autorelease]; 
    self.navigationController = [[[UINavigationController alloc] initWithRootViewController:rootViewController] autorelease]; 

    // Not necessary if you're using xibs 
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 

    // Add the nav controller's root view to the window 
    [window addSubview:navigationController.view]; 
    [window makeKeyAndVisible]; 

    return YES; 
} 
0

당신은 현재 뷰 컨트롤러로 설정 루트 뷰 컨트롤러와 네비게이션 컨트롤러에 뷰 컨트롤러를 변경해야합니다.

0

self.navigationController을 살펴보면 nil임을 알게 될 것입니다. 메시지가 없으므로 오류 메시지가 표시되지 않습니다.

UINavigationController으로 다른 레이어를 추가하고 RandomShitViewController (멋진 이름 : btw.)을 루트보기 컨트롤러로 추가하십시오.

네비게이션 컨트롤러가 푸시/팝 파트를 처리하면 이전 컨트롤러가 해당보기를 관리합니다.