iOS 嵌套 view 传值到 controller 的一种可行方案

博主分享了在解决嵌套View向Controller传值问题上的探索历程,从层层传递到使用代理方法,最终受WKWebView的启发,发现直接指定嵌套View的代理是一种简单直接的方案。他认为代码的简洁性是衡量质量的重要标准,并以此为原则找到了问题的完美解答。
摘要由CSDN通过智能技术生成

关于嵌套 view 传值到 controller,我尝试过多种方案:

  1. 一层一层传值出去
  2. 将 delegate 一层一层传进来
  3. 通过响应者链找到遵循协议的代理者

方案一直在改进,但始终感觉差那么一点:不够简单直接。

网上关于这个问题的讨论极少,并且分享的方案都是我尝试过的;在群里跟其他开发者也讨论过,依旧没有太多收货。

直到今天洗头的时候,终于把这个问题想通了。

我们都知道 WKWebView,它有一个 scrollView,如果你要捕获这个 scrollViewscroll 事件,你一定会写:

webView.scrollView.delegate = self

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    // do sth
}

这不就是一个典型的嵌套 view 传值到 controller 吗?

看清楚了吗?就是这么简单直接——

直接指定嵌套 view 的代理!

兜兜转转两三年,最终还是在苹果身上找到了完美答案。

在我眼里,衡量代码质量的重要标准之一就是代码是否够简单、够直接,好的业务代码不需要阅读者过多的思考。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

祖安狂人学编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值