Swift Delegate 协议的使用

Swift Delegate 协议的使用

 

协议规定了用来实现某一特定功能所必需的方法和属性。

任意能够满足协议要求的类型被称为遵循(conform)这个协议。

类,结构体或枚举类型都可以遵循协议,并提供具体实现来完成协议定义的方法和功能

 

第一个界面的代码

import UIKit
//遵循代理
class ViewController: UIViewController, classb{
//实现代理属性 和方法---------------
    var present = false
    
    var subject = "Swift 协议 subject"
    
    var stname = "Protocol"
    
    var marks = 99
    
    var result = true
    
    func attendance() -> String {
        return subject + stname
    }
    
    func markssecured() {
        print("\(stname) 成绩 \(marks)")
    }
//实现代理属性 和方法---------------

    
    override func viewDidLoad() {
        super.viewDidLoad()
      
    }
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        let next = NextViewController()
        next.delegate = self//遵循代理
        self.show(next, sender: self)
    }
}

 

 

第二个界面的代码

import UIKit

//声明协议
protocol classa {
    var marks: Int {get set}
    var result: Bool {get}
    
    func attendance() -> String
    func markssecured()
}
//协议继承
protocol classb: classa {
    var present: Bool {get set}
    var subject: String {get set}
    var stname: String {get set}
}

class NextViewController: UIViewController{
    
    var delegate : classb?
    override func viewDidLoad() {
        super.viewDidLoad()

        self.view.backgroundColor = UIColor.red
    }
    
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
      self.delegate?.marks = 199 //协议属性设置
      self.delegate?.markssecured()//协议方法调用
    }

}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值