iOS之ViewController的多层presentViewController的dismiss问题
2015-08-12 18:10
330 查看
今天在Q群里有人问了个这么个问题: A,B,C,D 都是Viewcontroller。A、B、C、D使用present去切的
他是这么搞的: A -> B, B ->C, C->D,然后他想在D直接到A控制器中。问有没有什么办法?
1、 首先先不管这个问题,我们来一起说说push 和present的一些区别?
present: 有一种效果,模态切换。它是VC的一个方法。
上图中的下面两个方法是7以上被废弃了。
push:依赖于导航栏。它是导航栏的一个特有方法.
当然没还有个区别:present可以立即显示一个View,后者是把一个View压进栈,然后显示出来。
对于如何从d->a dismiss的问题 想了到了个办法:
在dismiss的时候如果你是一层一层dimiss的话会出现一个一个界面消失的间隔,这个时候我找了很多资料,但是没有找到解决办法都是那么一层一层去搞,用户体验不好。像我这种有UI洁癖的是果断不能接受的。
于是我想为什么present可以一层一层present,还可以一层一层dimiss,感觉有点像push的stack,但更形象的说VC之前存在一种关系,就像一条线。这不禁让我想起了数据结构中的链表。当时周围的一个伙伴给我出了个主意-----后一个vc指向前一个vc,然后每层dimiss。 然后在之前资料中找到“苹果的思维非同凡响,其实你只需要解散一个Modal View Controller就可以了。即处于最底层的View Controller,这样处于这个层之上的ModalView Controller统统会被解散。” 经典,果然
最后在d中一句代码搞定:
[self.presentingViewController.presentingViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil];
然后,然后的然后就是prefrect。
总结:
在这个过程中,我还用过通知去解决,然后我在b和c都进行处理对d发出的通知。然而事情并不会d->c->b->a dimiss.哈哈,我太天真了。
消息发出之后,接受者接收执行操作,他们接收的先后顺序是不知道的,我太自以为是了,哈哈。别😊我.
他是这么搞的: A -> B, B ->C, C->D,然后他想在D直接到A控制器中。问有没有什么办法?
1、 首先先不管这个问题,我们来一起说说push 和present的一些区别?
present: 有一种效果,模态切换。它是VC的一个方法。
上图中的下面两个方法是7以上被废弃了。
push:依赖于导航栏。它是导航栏的一个特有方法.
当然没还有个区别:present可以立即显示一个View,后者是把一个View压进栈,然后显示出来。
对于如何从d->a dismiss的问题 想了到了个办法:
在dismiss的时候如果你是一层一层dimiss的话会出现一个一个界面消失的间隔,这个时候我找了很多资料,但是没有找到解决办法都是那么一层一层去搞,用户体验不好。像我这种有UI洁癖的是果断不能接受的。
于是我想为什么present可以一层一层present,还可以一层一层dimiss,感觉有点像push的stack,但更形象的说VC之前存在一种关系,就像一条线。这不禁让我想起了数据结构中的链表。当时周围的一个伙伴给我出了个主意-----后一个vc指向前一个vc,然后每层dimiss。 然后在之前资料中找到“苹果的思维非同凡响,其实你只需要解散一个Modal View Controller就可以了。即处于最底层的View Controller,这样处于这个层之上的ModalView Controller统统会被解散。” 经典,果然
最后在d中一句代码搞定:
[self.presentingViewController.presentingViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil];
然后,然后的然后就是prefrect。
总结:
在这个过程中,我还用过通知去解决,然后我在b和c都进行处理对d发出的通知。然而事情并不会d->c->b->a dimiss.哈哈,我太天真了。
消息发出之后,接受者接收执行操作,他们接收的先后顺序是不知道的,我太自以为是了,哈哈。别😊我.
相关文章推荐
- iOS 中 setter and getter
- ios开发中全局变量的使用
- iOS常用的第三方框架
- IOS #import与#include和@class的区别
- IOS动画CABasicACnimationanimation
- iOS内存管理策略和实践
- IOS的水滴文件效果
- 安装nagios 登陆后提示nagios Internal Server Error
- iOS跳转到打电话
- iOS竖屏自动滚动或欢迎页
- iOS Crash文件分析]-如何使用symbolicatecrash工具
- iOS开发系列--地图与定位
- iOS 版本自动更新
- iOS正则匹配手机号
- 如何学习IOS
- 有关iOS培训的学习方法
- iOS 中导航控制器全屏向右滑动返回上一界面
- 利用Nagios + CloudWatch API 监控 Amazon 实例
- 快快快!27个提升效率的iOS开源库推荐
- iOS推送过程详解