博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
跳转到指定的控制器
阅读量:6759 次
发布时间:2019-06-26

本文共 1043 字,大约阅读时间需要 3 分钟。

前言:跳转到指定的控制器

思路:想要跳转到指定的控制器(这里谈的是push或者是pop的方式)

  分两种情况:

1.要跳转到的目的控制器destinationViewController 是已经是在导航控制器的子控制器中了,那么遍历这些子控制器,pop回去

2.要跳转的目的控制器destinationViewController还没在已有的导航控制器的子控制器中,那么push到目的控制器

其中有一点是可以设置一个标志位,来判断是需要push还是pop

代码如下:

1 #pragma mark - 到目的控制器 2 - (void)ww_GotoDestinationViewController:(UIViewController *)destinationVc{ 3     //用popFlag作为标志位来进行判断push 还是pop 4     BOOL popFlag = NO; 5     for (UIViewController *childVc in self.navigationController.viewControllers) { 6         if ([childVc isMemberOfClass:[destinationVc class]]) { 7             popFlag = YES; 8             [self.navigationController popToViewController:childVc animated:YES]; 9             break;10         }11     }12     13     if (!popFlag) {14         //表明导航的子控制器里边没有合适的控制器来做这件事15         [self.navigationController pushViewController:[[destinationVc class] new] animated:YES];16     }17 }

当然还有的时候是存在以为modal的方式弹出的控制器,那种情况下,也有dismiss的情况,以后再整理。

参考网址:

 

iOS交流群欢迎你的加入!

群二维码:

先写到这么多

如有问题,敬请指正;

如需转载,请注明出处,谢谢!

 

转载于:https://www.cnblogs.com/ITCoderW/p/8179718.html

你可能感兴趣的文章
vue项目关闭eslint检查
查看>>
微服务技术栈
查看>>
NPOI workbook.RemoveSheetAt(0); 删除sheet页 次序 sheettmpRequire.CopySheet("Require", true);...
查看>>
Go标准库:深入剖析Go template
查看>>
ant design pro (四)新增页面
查看>>
uni - 使用npm
查看>>
ASP.NET Core多语言 (转载)
查看>>
java中比较两个double类型值的大小
查看>>
golang ----gc问题
查看>>
WPF去除边框的方法
查看>>
浅析NTFS 文件系统数据流安全问题
查看>>
Smart Device Framework 2.2 发布了
查看>>
Humble Numbers soj1029
查看>>
程序员技术练级攻略
查看>>
ls只显示文件名/只显示文件夹名
查看>>
Java并发编程:同步容器
查看>>
水晶报表之动态列--简化版实现
查看>>
验证控件的使用四( RangeValidator)
查看>>
网络编程(一):用C#下载网络文件的2种方法
查看>>
复制graphic
查看>>