첫 번째 viewcontroller에 UIViewController가있는 응용 프로그램을 개발 중입니다. 이 컨트롤러는 다른 컨트롤러가 포함 된 NavigationViewController를 푸시합니다. 이제 초기 UIViewController로 돌아가려면 NavigationController의 RootViewController를 팝업해야합니다. 내가Pop the RootViewController
[self dismissViewControllerAnimated:YES completion:nil];
앱 충돌로 시도 ("Tread1 : EXC_BAD_ACCESS (코드 = 1, 주소 = ...)"). 시도해 보았습니다.
[self.navigationController popViewControllerAnimated:YES];
아무 반응이 없습니다.
는초기의 UIViewController는 SEGUE 유형의 인 UIBuilder은 "(예를 들면. 푸시)"
그런 다음 나는 RootViewController 다른의 ViewController를 포함하는 NavigationViewcontroller가에서[self performSegueWithIdentifier:@"MyIdentifier" sender:self];
를 호출합니다. 내가 뭘 하려는지 RootViewController에서 첫 번째 viewcontroller (navigationcontroller 외부 하나)로 돌아갈 것입니다. 그래서 나는 네비게이션 컨트롤러를 가지고 있어야합니다.
무엇이 누락 되었습니까?
'self'는 누구에게도 'navigationController'가 없습니다. 잘못된보기 컨트롤러와 대화하고 있습니다. 여기서 문제는 뷰 컨트롤러의 전체 "스택"을 좋은 순서로 푸는 것이 필요하다는 것입니다. 아마도 하나 이상의 명령이 필요할 것입니다. 불행히도 여러분의 질문은 뷰 컨트롤러의 실제 풀 세트를 설명하지 않으므로 더 이상 도움이되지 않습니다. – matt
난 당신이보기 컨트롤러 계층 구조를 봐야 할 것 같아요. UIViewController는 자신의 내비게이션 컨트롤러없이 UINavigationController를 "푸시"합니까? UINavigationController를 모달 컨트롤러로 표시하는 것이 좋습니다. – Erik
시도해 볼 수도 있습니다 [self.navigationController popToRootViewControllerAnimated : YES]; – JScarry