获取iOS系统自带返回按钮事件
前言#
趁着刚做完应用脑子还热乎,好好的总结一下开发过程中遇到的一些坑以及解决的方法。我第一个遇到的难题就是在新建一个账单的时候,当用户点的不是保存而是系统自带的返回,我就弹出一个提示框问是否保存后再返回。相信大家开发过程中也经常会遇到这样的需求,我这里讲一下如何简单的解决这个问题吧~
解决思路#
刚开始我是通过自己定义一个leftBarButtonItem来实现的,但是这个没有那个返回的箭头实在是丑啊!于是网上找各种方法,大家如果找过的可能会找到很多人直接贴一大串有些复杂的代码,重点是还都一样。但是机智的我最后还是发现了原作者http://stackoverflow.com/questions/1214965/setting-action-for-back-button-in-navigation-controller/19132881#19132881就是那个获得120个赞同的答主,他写了一个extension,你只要把那两个文件拖到你项目里,然后重写一个方法就好了
- (BOOL)navigationShouldPopOnBackButton {
if (要弹出提示) {
// 在这里创建UIAlertController等方法
return NO;
}
return YES;
}
然后就可以了,感兴趣可以研究一下作者是怎么实现的,文件在作者的回答下面有下载链接,如果你不愿点开那个链接的,也可以直接从我的项目里面复制就好了,哈哈,强行安利一下我的项目,是一个记账类的APP软件,已经在github上开源了,感兴趣的可以点 https://github.com/XinStar1/AZXTallyBook刚刚讲的那个extension在Supporting file里面,觉得好的话可以star一下~