iOS开发笔记之十三——跳转到指定的controller类

来源:互联网 发布:直播那个软件最好 编辑:程序博客网 时间:2024/06/05 13:43

1、开发需求

      有需求需要在多个controller页面中进行跳转,跳转到指定的页面。由于前面压入栈的controller的顺序是不定的,例如:

ABCDE依次被pushController,在E这个controller页面需要跳回到B页面。但是ABCD的顺序是不定的,有可能是ACBD,也有可能是BACD等顺序。

这就需要查找指定的controller并跳转了。

2、页面跳转的常用方法有以下几种:

- (UIViewController *)popViewControllerAnimated:(BOOL)animated;         //跳转到上一个页面controller

- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;          //跳转到root的页面的controller

- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;        //跳转到指定页面的controller

通过下面方法可以获取当前controller栈的类:

NSArray * viewControllers = [self.navigationController viewControllers];

获取当前栈中controller页面的数量:

int kCount = [viewControllers count];

遍历查找指定的B类,如果查找到则pop到那个页面,中间的页面类纷纷出栈,直到B页面。
 int kNum = 0;
 for(kNum = kCount - 1; kNum >= 0 ; kNum --)
 {
      if ([[viewControllers objectAtIndex:kNum] isKindOfClass:[B class]])
      {
          [self.navigationController popToViewController:[viewControllers objectAtIndex:kNum] animated:YES];
          return;
      }
 }
    //如果查找不到
    if (kNum < 0)
    {
    }

3、参考资料

http://blog.csdn.net/wang9834664/article/details/8025571

0 0
原创粉丝点击