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
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容