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,真的不是特别优雅。
如果对您有帮助,点个在赞再走吧
网友评论