实现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 的区别

希望这次分享对需要的人能够提供帮助,大家能够多多交流经验。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容