美文网首页Swift学习
swift-基础-传值

swift-基础-传值

作者: 埃林的奶酪 | 来源:发表于2016-08-15 11:58 被阅读6次

    直接监听

    • Swift中可以直接拿到别的类的成员变量来监听
    
    messageView.registorButton.addTarget(self, action: #selector(registorClick), forControlEvents: UIControlEvents.TouchUpInside)
    
    @objc private func registorClick(button: UIButton)
    
        {
        }
    

    代理

    • 控件中
    import UIKit
    
    protocol MessageVisitorViewDelegate: NSObjectProtocol
    
    {
    
        // 默认情况下协议中的方法都是必须实现的
    
        func messageVisitorViewDidClickRegistorButton(messageVisitorView: MessageVisitorView)
    
        func messageVisitorViewDidClickLoginButton(messageVisitorView: MessageVisitorView)
    
    }
    
        // 代理可以有,也可以没有,所以是可续
    
        weak var delegate: MessageVisitorViewDelegate?
    
        @IBAction func registorClick(sender: AnyObject) {
            // 因为协议方法都是必须实现,因此这里不需要判断代理是否实现了方法
    
            delegate?.messageVisitorViewDidClickRegistorButton(self)
    
        }
    
        
    
        @IBAction func loginClick(sender: AnyObject) {
    
            delegate?.messageVisitorViewDidClickLoginButton(self)
    
        }
    
    
    • 控制器
    // 设置代理
    messageView.delegate = self
    // Swift中一般另外开辟一块代码块来写代理方法
    extension MessageController: MessageVisitorViewDelegate
    
    {
    
       func messageVisitorViewDidClickLoginButton(messageVisitorView: MessageVisitorView) {
    
        }
    
      func messageVisitorViewDidClickRegistorButton(messageVisitorView: MessageVisitorView) {
    
        }
    
    }
    

    相关文章

      网友评论

        本文标题:swift-基础-传值

        本文链接:https://www.haomeiwen.com/subject/bpjusttx.html