2012-11-06 2 views
0

저는 뷰 컨트롤러가 3 개 있습니다 (vcA, vcBvcC).iOS - navigationController에 viewController를 포함합니다.

나는 vcA에 있으며 vcB을 누릅니다. 그것은 작동합니다.

vcB에서 vcC을 푸시하려고하면 오류가 발생합니다. 나는 vcBself.navigationController 속성이 nil임을 확인합니다.

이 속성에 대한 도움말 파일을 읽고, 나는이를 참조하십시오

뷰 컨트롤러가 탐색 컨트롤러 내부에 포함되어 있지 않은 경우이 속성은 전무하다.

따라서 vcB은 탐색 컨트롤러 안에 없습니다.

제 질문은 입니다. 내비게이션 컨트롤러에 vcB을 삽입하기에 충분합니까? 그렇지 않다면 어떻게 내비게이션 컨트롤러에 vcB을 삽입합니까?

NB : vcA은 Interface Builder에서 빌드되고 vcBvcC은 프로그래밍 방식으로 생성됩니다.

+0

몇 가지 코드를 게시 할 수 있습니까? 개념적으로 당신이 맞다고 생각하는 것 같습니다. 나는'vcA'가 초기에 네비게이션 컨트롤러의 뷰 스택에 푸시 됨으로써 표시된다고 가정합니다. –

+0

괜찮지 만 내 질문은 이것입니다 : vcA가 내비게이션 컨트롤러에 내장되어 있으며 인터페이스 작성기에서이 작업을 수행했습니다. 이제 네비게이션 컨트롤러에 두 번째보기 컨트롤러 (vcB)를 포함시키는 방법은 무엇입니까? 이 vcB는 vcA에서 프로그래밍 방식으로 만들어집니다. – SpaceDog

+0

예 pushViewController 메서드를 사용하여 다른 컨트롤러를 푸시 할 수 있지만 문제를 확인하기 위해 코드를 표시하십시오. – samir

답변

0

3 일 후에 나는이 문제를 마침내 해결했습니다.

이 문제점은 내 viewController 및 navigationController 중 하나가 이고 모두이 대리자의 rootViewController 콘센트에 연결되어 있다는 것입니다. Xcode를 가리켜 주셔서 감사합니다! 죄송하지만 저는 Xcode 4가 지금보다 더 싫어서 다시 말해야합니다. https://stackoverflow.com/a/13280574/316469

고마워 :

이 문제에 대한 해결책은, 내가 가진 여기에서 볼 수있는 또 다른 문제와 관련이 있었다.

0

당신의 ViewController의 지능이 방법을 정의하려고 :

는 VCA

에서 VCB를 정의
@property (nonatomic, strong) UIViewController *vcB; 

@synthesize vcB = _vcB; 

다음 스택에 밀어 넣습니다.

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

@property (nonatomic, strong) UIViewController *vcC; 

@synthesize vcC = _vcC; 

다음 스택에 푸시 VCB

에 VCC를 정의한다.

[self.navigationController pushViewController:self.vcC animated:YES]; 
+0

네비게이션 컨트롤러의 뷰 스택에'vcB '를 추가하기 위해'vcA'에'vcB'에 대한 강력한 참조 (속성을 통해)를 유지할 필요가 없습니다. –

관련 문제