Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.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_Uinavigationcontroller - Fatal编程技术网

Ios 如何返回视图控制器?

Ios 如何返回视图控制器?,ios,uinavigationcontroller,Ios,Uinavigationcontroller,如果我在应用程序中使用5个视图控制器,如果我使用的是第5个视图控制器,如果我想通过按钮操作返回第2个视图控制器,我应该编写什么代码?您唯一能做的就是popToViewController 因此,有几个步骤: 获取要返回的UIViewController 通过执行类似于self.navigationController.viewControllers的操作,从导航控制器中取出所有视图控制器 运行for each循环,并在for each中添加if条件,以匹配从步骤1开始要创建的视图控制器 使用导航

如果我在应用程序中使用5个视图控制器,如果我使用的是第5个视图控制器,如果我想通过按钮操作返回第2个视图控制器,我应该编写什么代码?

您唯一能做的就是
popToViewController

因此,有几个步骤:

  • 获取要返回的UIViewController
  • 通过执行类似于
    self.navigationController.viewControllers
    的操作,从导航控制器中取出所有视图控制器
  • 运行for each循环,并在for each中添加if条件,以匹配从步骤1开始要创建的视图控制器
  • 使用导航控制器的
    popToViewController
    方法 大致如下:

    for (UIViewController *vc in self.navigationController.viewControllers) {
        if ([vc isKindOfClass:[ViewController2 class]]) {
            [self.navigationController popToViewController:vc animated:NO];
        }
    }
    

    您看过
    UINavigationController
    的文档了吗?
    popToViewController
    的第一个参数应该是变量
    vc
    。不需要循环或
    if
    。只需执行[self.navigationController popToViewController:self.navigationController.ViewController[1]动画:是]
    viewControllers
    数组将按照视图控制器的堆叠顺序排列。@rmaddy更正了答案,感谢您指出。是的,我建议他使用for循环,因为他可能知道去哪个控制器类,但不知道索引。