2011-09-08 6 views
0

저는 아이폰을 처음 사용하고 다음과 같은 오해가 있습니다.아이폰에서 내비게이션 컨트롤러를 사용하는 방법을 이해하지 못합니다.

NavigationController을 사용하는 방법에 대한 자습서는 프로그래밍 방식은 말한다 모든 인터넷을 통해 :

NavigationController must be declared in applicationDidFinishLaunching and must be init with a root.After that you can add views to it. 

나는이 있습니다. UIViewController 수준의 의미 (AdiViewController.h, AdiViewController.m and AdiViewController.xib)없이 Delegate file 의미를 더 applicationDidFinishLaunching 방법

무엇을 I 내 수업에서 AdiViewController 버튼을 누르면 다른보기로 이동할 수 있습니다. 내 의견을 보유해야하는 NavigationController이 필요하다는 것을 알고 있습니다. h Aving the root AdiViewController.

그러나 내 문제는 에 NavigationController을 초기화해야하는 이유입니다 ... 원인 : Delegate 파일이 없습니다. 당신이 나의이 작은 문제를 최소한의 예를 제공 할 수 있다면

수석 얼마나 사람들이 아무것도 없다는 것을 훌륭해 확인 될하지만 여전히 나는 고마워요,

답변

2

있는 navigationController을하지 않습니다 applicationDidFinishLaunching에서 선언해야합니다 -> 이것은 사실이 아닙니다. AdiViewController에서 버튼을 눌렀을 때 버튼이 있으면 내비게이션 컨트롤러를로드하고 싶습니까?

네가 AnotherViewController에 있다면 네비게이션 컨트롤러의 루트보기 컨트롤러에있는 것입니다. 거기에서보기 컨트롤러를 밀고 팝해야합니다. 예를 들어, AnotherViewController에 버튼이있는 경우 :

// push next view controller onto navigation controller's stack 
    - (IBAction)pushNextViewController 
    { 
     NextViewController* nextView = [[NextViewController alloc] initWithNibName:@"NextView" bundle:nil]; 
     [self.navigationController pushViewController:nextView animated:YES]; 
     [nextView release]; 
    } 

// Similarly if you want to go back to AnotherViewController from NextViewController you just pop that from navigation controller's stack 
- (IBAction)pushNextViewController 
    { 
     [self.navigationController popViewControllerAnimated:YES]; 
    } 
+0

예 .... 저는 거의 그걸 원합니다! – adrian

+0

당신은 훌륭합니다. 그러나 AnotherViewController에 도달하면 다른보기로 넘어 가고 싶습니다. 어떻게 진행합니까? 코드를 업데이트하십시오. 감사합니다. – adrian

+0

@george가 내 코드를 업데이트했습니다. – 0x8badf00d

관련 문제