NAVigationController 跳转使用的是压栈出栈,那我如果A->B->C->D,如何从D调到B呢。。popToViewController。已经试过没用的!代码执行,但是不进行跳转操作。

解决方案 »

  1.   

    你确定popToViewController后面传的参数是你要跳转的那个vc?打印一下内存地址看看是不是同一个
      

  2.   

    在D中你怎么找到的B? 如果是新实例的B肯定不会跳转,你需要找到原来的B实例。可尝试如下代码:
    NSArray *viewcontrollers = [self.navigationController viewControllers];
    //////如果知道B在控制器栈中的索引位置,可通过这个来从数组中查找
    UIViewController *vc = viewcontrollers[1]; ///////a: 0 b:1 c:2 d:3 
    if ([vc isKindOfClass:[B class]]) {   ////////说明是B的实例
          [self.navigationController popToViewController:vc animated:YES];
    }
      

  3.   

    popViewController 调用两次看看