Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 弹出到初始视图控制器_Ios_Iphone_Objective C_Uinavigationcontroller_Popviewcontrolleranimated - Fatal编程技术网

Ios 弹出到初始视图控制器

Ios 弹出到初始视图控制器,ios,iphone,objective-c,uinavigationcontroller,popviewcontrolleranimated,Ios,Iphone,Objective C,Uinavigationcontroller,Popviewcontrolleranimated,我目前正在编写一个使用嵌入式NavigationController的应用程序。我需要从嵌入式控制器中弹出第一个视图控制器的初始视图 这行代码只是将我返回到嵌入式navigationController的初始视图: [self.navigationController-popToRootViewControllerAnimated:是] 有什么想法吗?你可以做一些像这样的递归函数。为方便起见,请随意命名或将其作为一个类别 - (void)recursivePop:(UIViewControlle

我目前正在编写一个使用嵌入式NavigationController的应用程序。我需要从嵌入式控制器中弹出第一个视图控制器的初始视图

这行代码只是将我返回到嵌入式navigationController的初始视图:

[self.navigationController-popToRootViewControllerAnimated:是]


有什么想法吗?

你可以做一些像这样的递归函数。为方便起见,请随意命名或将其作为一个类别

- (void)recursivePop:(UIViewController *)viewController
{
   if (viewController.navigationController)
   {
       [viewController.navigationController popToRootViewControllerAnimated:YES];
       [self recursivePop:viewController.navigationController];
   }
}
然后,在视图控制器中,您希望通过如下方式调用它

[self recursivePop:self];

Swift版本:

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)
            }
        }
    }
}

你能告诉你的应用程序的层次结构和你想在哪里弹出吗?如果你知道的话。我刚刚更换了[self.navigationController.popToRootViewControllerAnimated:YES];使用[self.navigationController.navigationController poptrootviewcontrolleranimated:YES];UIViewController的navigationController属性返回“视图控制器层次结构中作为导航控制器的最近祖先”。看起来您有两个导航控制器,一个是另一个的子控制器。您认为这可以通过使用self.recursivePop(split)替换splitcontroller部分的内部来简化吗