현재 내비게이션 컨트롤러를 사용하는 앱을 작성 중입니다. 임베디드 컨트롤러에서 첫 번째보기 컨트롤러의 초기보기로 이동해야합니다.초기보기 컨트롤러 팝업
이 줄의 코드가 바로 임베디드있는 navigationController의 초기보기에 저를 반환 :
[self.navigationController popToRootViewControllerAnimated : YES];
아이디어가 있으십니까?
현재 내비게이션 컨트롤러를 사용하는 앱을 작성 중입니다. 임베디드 컨트롤러에서 첫 번째보기 컨트롤러의 초기보기로 이동해야합니다.초기보기 컨트롤러 팝업
이 줄의 코드가 바로 임베디드있는 navigationController의 초기보기에 저를 반환 :
[self.navigationController popToRootViewControllerAnimated : YES];
아이디어가 있으십니까?
이와 같은 재귀 함수를 사용할 수 있습니다. 편의를 위해 카테고리를 원하는대로 지정하거나 이름을 지정하십시오.
- (void)recursivePop:(UIViewController *)viewController
{
if (viewController.navigationController)
{
[viewController.navigationController popToRootViewControllerAnimated:YES];
[self recursivePop:viewController.navigationController];
}
}
그런 다음보기 컨트롤러에서 이것을 이렇게 호출하여 호출하려고합니다.
[self recursivePop:self];
스위프트 버전 :
func recursivePop(controller: UIViewController?){
if let controller = controller {
if let nav:UINavigationController = controller.navigationController {
nav.popToRootViewControllerAnimated(true)
self.recursivePop(controller)
}
if let split:UISplitViewController = controller.splitViewController {
if let nav:UINavigationController = split.navigationController {
nav.popToRootViewControllerAnimated(true)
self.recursivePop(controller)
}
}
}
}
splitcontroller 섹션의 내부를 self.recursivePop (split)으로 대체하면 간단해질 수 있다고 생각하십시오. – GregP
당신이 응용 프로그램 당신의 계층 구조를 말할 수와 위치를 팝업 하시겠습니까? – KudoCC
알아 낸 경우. 방금 교체했습니다. [self.navigationController. popToRootViewControllerAnimated : 예]; 과 [self.navigationController.navigationController popToRootViewControllerAnimated : YES]; – user3250926
navigationController UIViewController 속성은 "탐색 컨트롤러 인 뷰 컨트롤러 계층에서 가장 가까운 조상"을 반환합니다. 그것은 당신이 다른 하나의 자식 컨트롤러입니다 두 탐색 컨트롤러가있는 것 같습니다. – KudoCC