谈一谈拦截导航控制器返回事件(下)——AOP

前文链接:谈一谈拦截导航控制器返回事件(上)——OPP

我们开发一个项目都是慢慢完善的,设想一个很坏的情况:你所有的controller都没有基类,都是互相独立的。现在出现一个新的需求,当用户点击导航栏的返回按钮时,需要询问用户是否退出。那么这种情况下我们只能在当前controller自定义一个返回按钮,给它添加点击事件,最后我们在controller增加了几行代码,实现了此功能,如果其它controller也有此需求,我们又如法炮制。往后又有新的需求,需要改变提示框的样式,我们又需要一个个去修改,这样如此往复,代码便极其难维护,且开发效率低下。
所以导航控制器返回事件需要我们统一维护起来,像上篇一样我们可以自定义NavigationController,当push方法被调用时,我们统一设置返回按钮。但我们的项目已经开发的很庞大了,导航控制器我们使用的都是UINavigationController,如果我们此时自定义NavigationController,再去一一替换,也是一件极其耗时的事。此时我们就在想能不能再不影响整体项目的结构下,实现此功能。我们只想在push时去执行我们一段额外的代码片段,去设置返回按钮,此时AOP就派上用场了。
AOP即面向切面编程,这种在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。众所周知,iOS允许我们在runtime时,用自定义的方法替换系统原有的方法

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值