2012-09-18 3 views
1

내 스토리 보드는 다음과 같습니다 그것에 아무 관련이없는 것 : 첫 번째 부분은 지사를 작동 enter image description here, 그것은 rootViewController는

는 문제는 내가 "테스트 모달"버튼을 사용할 때 2 번째 NavigationController를 모달로 보여줍니다. 즉, rootViewController를 갖도록 올바르게 설정되었습니다. 연결이 만들어지지 않습니다. 내가 UINavigationController가 액세스 할 수있는 방법이 없습니다 -

의미, 내가 UINavigationController가합니다 (UIWindow의 rootViewController에서 시작하는 모든 컨트롤러를 쿼리로)가 알고 , 내 컨트롤러도 장착되어 있지만있는 navigationController가 전무하다 parentViewController은 전무하다 (따라서 상단 툴바를 사용자 정의 할 방법이 없습니다.)

두 번째 UINavigationController에서 "Initial View Controller"를 선택하면 작동합니다 (하지만 분명히 원하는 것은 아닙니다). 나는 이것이 UIKit 버그일지도 모른다라고 생각한다. 아니면 내가 잘못하고있는거야?

+0

안녕하세요, 저는 iOS 초보자입니다.하지만 내 앱에서하는 것처럼 들렸 기 때문에 Twitter에 답장했습니다. 귀하의 유스 케이스를 점검했는데 네 말이 맞아, 두 번째 네비게이션 컨트롤러 navigationController는 null이다. 하지만 그 자체가 네비게이션 컨트롤러이기 때문에 그것이 의도적이라고 생각합니다. navigationController가 있으면 다른 탐색 컨트롤러에 포함되어 있으므로 두 개의 도구 모음이 있다는 뜻입니다. –

+0

그러나 유스 케이스를 복제 할 때 self.navigationBar가 있으며 사용자 정의 할 준비가되었습니다. –

+0

UINavigationController를 밀면, 나는 rootViewController를 push하고, 그냥 감싸고있다. 그래서 물론 navigationController 내 viewController, UINavigationController 액세스 할보십시오. – steipete

답변

2

나는 마침내 이것을 발견했다.

내 초기화시 [super initWithCoder:decoder]을 호출하지 않았습니다. 이로 인해 일부 UIViewController 변수가 초기화되지 않았습니다. 그것을 변경 한 후에 그것은 매력처럼 작동합니다.

4

prepareForSegue 메소드를 올바르게 구현 했습니까? 내 앱에서 prepareForSegue 메소드를 구현하는 방법입니다.

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
if([segue.identifier isEqualToString:@"yourConnectionName"]) { 
UINavigationController *navController = segue.destinationController; 
YourViewControllerClass *controller = (YourViewControllerClass *)navController.topViewController; 
controller.delegate = self; 
} 
} 
+0

대리인이 없으므로 prepareForSegue가 필요하지 않습니다. 그리고 그것은 모달로 작동하지 않습니다. – steipete

+0

은 새로운 "View Controller"로 설정된 "root view controller"속성과 "Test Modal"버튼에 대한 "modal"속성입니다. 연결 관리자에서 내비게이션 컨트롤러를 확인하십시오. – andreasgasser

+0

예. 나는 그것이 내 컨트롤러에서 가장 가능성이 높은 것으로 의심한다. DTS를 Apple에 제출했습니다. – steipete