UINavigationController的setViewControllers方法
2016-07-15 15:20
405 查看
摘要: 多读读官方的开发文档吧
上个月进了新公司,读了新代码,越来越发现之前几年的iOS开发算是白学了。
由于本人是C++转iOS开发,很多东西用C++的思维、方法,甚至直接用C++来实现,写出了很多烂代码,导致维护困难,原本苹果提供的很好的方法都没有去研究,今天先将其中一个吧:UINavigationController的setViewControllers方法。
UINavigationController应该很多项目中都有用,push和pop是最常用的,但不能满足所有需求,如果要删除中间某个VC,或者重构UINavigationController维护的整个VCs的栈,setViewControllers就可以派上用场。
可以任意增删改整个VCs栈的其中一个,满足我们的跳转需求,UITabBarController也有同样的方法
该方法支持iOS3.0+,放心使用。
上个月进了新公司,读了新代码,越来越发现之前几年的iOS开发算是白学了。
由于本人是C++转iOS开发,很多东西用C++的思维、方法,甚至直接用C++来实现,写出了很多烂代码,导致维护困难,原本苹果提供的很好的方法都没有去研究,今天先将其中一个吧:UINavigationController的setViewControllers方法。
UINavigationController应该很多项目中都有用,push和pop是最常用的,但不能满足所有需求,如果要删除中间某个VC,或者重构UINavigationController维护的整个VCs的栈,setViewControllers就可以派上用场。
NSMutableArray * viewControllers = [self.navigationController.viewControllers mutableCopy]; for (UIViewController *viewController in [viewControllers reverseObjectEnumerator]) { NSString *tempName = NSStringFromClass([viewController class]); if ([tempName isEqualToString:viewControllerName]) { [viewControllers removeObject:viewController]; } [self.navigationController setViewControllers:viewControllers animated:YES];
可以任意增删改整个VCs栈的其中一个,满足我们的跳转需求,UITabBarController也有同样的方法
该方法支持iOS3.0+,放心使用。
相关文章推荐
- ios开发之View属性hidden, opaque, alpha, opacity的区别
- UI学习
- jquey点击table行 获取行数据 赋值到其他控件
- 指定UITableView滚动到某行
- 圆角矩形的UIButton
- Rebuild Instance 操作详解 - 每天5分钟玩转 OpenStack(37)
- Nova Suspend/Rescue 操作详解 - 每天5分钟玩转 OpenStack(35)
- LeetCode 374: Guess Number Higher or Lower
- UILabel添加删除线
- Android Studio Gradle Build Running 特别慢的问题
- 处理多层级事件传递(UIResponder拓展)
- UITableView性能优化---自动计算cell高度(FDTemplateLayoutCell)
- String,StringBuffer与StringBuilder的区别??
- 最近研究了一下UE4引擎就发个记录博客吧
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
- 解决UISlider滑块不灵敏
- iOS开发从入门到精通--UIButton事件处理
- UITableView ,UICollectionView,视图刷新的时候用
- HDU 4632 Palindrome subsequence (区间DP)
- 将UEditor的图片批量上传抠出来单独使用