实现UIViewController隔页跳转(不销毁控制器)

很多情况下我们都需要跳转页面,最常见的跳转方式就是:

[self.navigationController popToViewController:VC animated:YES];
[self.navigationController pushViewController:VC animated:YES];

上面这两种是通过建立新的控制器再进行跳转.

返回页面最常见的两种就是返回上一层和返回根视图控制器

[self.navigationController popViewControllerAnimated:YES]; [self.navigationController popToRootViewControllerAnimated:YES];

如果自己创建了五个控制器了,然后自己想跳转到第三个控制器去,上面的方法就不行了。在这里跟大家分享一个可以在不销毁前面控制器的情况下跳转的方法.

 NewViewController * NewVC = nil;//要跳转的控制器
 for (UIViewController * VC in self.navigationController.viewControllers) {
            
            if ([VC isKindOfClass:[NewViewController class]]) {
                
                 [self.navigationController popToViewController:newVC animated:YES];
                
                return;
      }
}

还有一种方法(一句话搞定!)

[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:0] animated:YES];
可以自己研究下push 和 pop 的区别和方法相信你会底层有更多收获

push 和 pop 的区别

希望这次分享对需要的人能够提供帮助,大家能够多多交流经验。

你可能感兴趣的:(实现UIViewController隔页跳转(不销毁控制器))