【Swift】代理使用举例

代理 是iOS 开发里面一个很重要的内容,在关键时刻可以发挥重要作用,实训中使用到的例子是:* 点击一个tableviewcell中的一个按钮,跳转到另一个页面 *
如果简单的话当然可以直接storyboard连接过去,但是如果想使用NavigationController,你总不能在button的Selector里面写self.navigationcontroller吧,因为self是一个cell,没有导航控制器,那么我们这个时候可以使用委托。
我们首先来看一下委托的概念。


委托(delegate)是Cocoa的一个术语,表示将一个对象的部分功能转交给另一个对象。
比如对象A希望对象B知道将要发生或已经发生某件事情,对象A可以把对象B的引用存为一个实例变量。这个对象B称为委托。当事件发生时,它检查委托对象是否实现了与该事件相适应的方法。如果已经实现,则调用该方法。
由于松耦合的原因,一个对象能成为多个对象的委托。某些情况下,相较于通过继承让子类实现相关的处理方法,可以有效减少代码复杂度。所以iOS中也大量的使用了委托。


首先在cell的类定义前面加一个协议的定义,并在类定义中增加delegate的一个变量

protocol RequestJumpDelegate {
    func requestJump()
}

class DemoCell: FoldingCell {
    var delegate: RequestJumpDelegate?
//其他代码
}

随后给DemoCell里面的按钮增加方法绑定,方法调用的是协议中的requsetJump()

    @IBAction func requestTapped(_ sender: Any) {
            delegate?.requestJump()
    }

随后在使用了cell的VC里面定义好requsetJump()方法,并将cell的delegate设为自己,即可完成任务。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值