iOS如何优雅的监听滑动返回结果

UINavigationController说明

在iOS中的UINavigationController中,存在两种返回操作

  • 点击返回按钮实现页面返回
  • 侧边栏滑动返回

需求说明

在项目运营中,会频繁遇到打开WebView的Controller操作。如果每次都创建新的Controller,并且创建WebView,会比较占用内存。
所以现在想到,用个数组保存2、3个可复用的Controller。

操作描述

以上都是废话,可以直接看下面的内容。
在UINavigationController中的滑动返回,可能用户滑动一半,又回到停留界面,这个操作你应该会懂的。

失败的解决方案

第一个想法是监听popViewControllerAnimated:(BOOL)animated方法。但是用了动画效果后,这个方法针对上面说的操作就无效了。

最终的解决方案

在需要复用的Controller中,监听viewDidDisappear:(BOOL)animated方法

- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    if (self.navigationController == nil) {
        [APPUtils addWebViewController:self];
    }
    NSLog(@"%@: %ld, %@", self, viewCount, self.navigationController);
}

如此就可以监听,用户的的确确是滑动返回了。在此基础上,我们就可以做更多的监听操作了。

至于某歌/某度上搜索到的手势监听、willMoveToParentViewController:(UIViewController *)parent,真的不是特别优雅。

WKWebView如何优雅的清除历史记录

如果对您有帮助,点个在赞再走吧

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。