Objective-C页面消失或出现时,判断是pop还是push操作
2016-03-07 16:58
656 查看
当前的controller消失的时候回先后执行
这两个方法;在这两个方法中进行判断消失的方式即可:
页面出现时会先后执行:
这两个方法;如果是push出来的页面则还会执行:
所以可在viewdidload里加个 isPush = YES布尔值,然后在Appear中根据isPush判断是push还是pop:
别忘了页面消失时置isPush为NO:
- (void)viewWillDisappear:(BOOL)animated; -(void)viewDidDisappear:(BOOL)animated;
这两个方法;在这两个方法中进行判断消失的方式即可:
- (void)viewWillDisappear:(BOOL)animated { NSArray *viewControllers = self.navigationController.viewControllers;//获取当前的视图控制其 if (viewControllers.count > 1 && [viewControllers objectAtIndex:viewControllers.count-2] == self) { //当前视图控制器在栈中,故为push操作 NSLog(@"push"); } else if ([viewControllers indexOfObject:self] == NSNotFound) { //当前视图控制器不在栈中,故为pop操作 NSLog(@"pop"); } }
页面出现时会先后执行:
-(void)viewWillAppear:(BOOL)animated -(void)viewDidAppear:(BOOL)animated
这两个方法;如果是push出来的页面则还会执行:
- (void)viewDidLoad
所以可在viewdidload里加个 isPush = YES布尔值,然后在Appear中根据isPush判断是push还是pop:
-(void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; if (_isPush) { //push }else{ //pop } }
别忘了页面消失时置isPush为NO:
- (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; _isPush = NO; }
相关文章推荐
- Objective-C Runtime 一小时入门教程(中)
- new Object[5]语句是否创建了5个对象
- 关于QObject::connect: Cannot queue arguments of type"..."
- Objects中如何查询与线相交的栅格
- Objective-C的Category与关联对象实现原理
- android stdio java 工程中使用jsonobject
- iOS开发 Object-C 与 Swift 中的Touch ID开发
- python 报错TypeError: 'range' object does not support item assignment,解决方法
- Objective-C适用C数学函数 <math.h>
- Objective-C中的meta-class
- Objective-C中@property的所有属性详解
- NSObject的load和initialize方法
- Jsionarray和jsionobject-----java
- Objective-C关于非ARC模式下的对象引用计数
- NSObject的load和initialize方法
- Objective-C Runtime 1小时入门教程
- Objective-C中通过下标的方式访问自定义数据模型中属性
- Objective-C学习记录
- Objective-c 内存管理
- Objective-c (多输入参数的方法)