iOS 如何判断页面是pop(销毁)消失还是push消失

部分页面,比如NSTimer页面,在pop或dismiss的时候,由于有计时器的存在,不会走系统的dealloc方法,所以我们也就无法正常的释放计时器,那么我们该怎么做呢?其实方法很简单,系统已经提供给了我们方法,只是很少有人注意到。
我们只需要在viewWillDisappear的方法中来进行相关判断即可

1、页面将要出现时,判断页面是以push方式跳过来,还是以pop方式跳过来的

- (void)viewWillAppear:(BOOL)animated {
    [superview WillAppear:animated];
    if([self isBeingPresented] || [self isMovingToParentViewController]) {
        // push / present
    }else{
        // pop /dismiss to here
    }
}

2、页面将要消失时,判断此时的页面是pop到上一页面还是push到新页面

- (void)viewWillDisappear:(BOOL)animated {
    [superview WillDisappear:animated];
    if([self isBeingDismissed] || [self isMovingFromParentViewController]) {
        // pop / dismiss
        //在这里我们可以做计时器置空的相关操作
    }else {
        // push /present from here
    }
}

你可能感兴趣的:(iOS 如何判断页面是pop(销毁)消失还是push消失)