zoukankan      html  css  js  c++  java
  • Swift之Delegate/闭包

    Block

    1.typealias ScenderBlock = (_ backString: String) -> Void

    2.var block:ScenderBlock?

    3.self.block?(textField1.text!)

    4.在传值界面

    vc.block = { backString in

                self.lab.text = backString

            }

    Delegate

    1.

    @objc protocol scenderDelegate:NSObjectProtocol{

        func backTextFieldValue(_ textString:String)

    }

    2.weak var delegate:scenderDelegate?

    3.

    if self.delegate != nil && (self.delegate?.responds(to: #selector(ScenderDelegate.backTextFieldValue(_:))))!{

                self.delegate?.backTextFieldValue(textField2.text!)

            }

    4.在回传的界面中a.添加ScenderDelegate     b. vc.delegate = self

    c.

    func backTextFieldValue(_ textString: String) {

            self.lab.text = textString

        }

    全部代码-----------------------------------------------

    ------------------------------------------------------

    ------------------------------------------------------

    class ViewController: UIViewController,ScenderDelegate {

        @IBOutlet weak var lab: UILabel!

        

        override func viewDidLoad() {

            super.viewDidLoad()

            

            

        }

        @IBAction func presentClick(_ sender: Any) {

            let vc:scenderVC = self.storyboard?.instantiateViewController(withIdentifier: "scenderID") as! scenderVC

            vc.block = { backString in

                self.lab.text = backString

            }

            vc.delegate = self

            self.present(vc, animated: true, completion: nil)

        }

        func backTextFieldValue(_ textString: String) {

            self.lab.text = textString

        }

    }

    import UIKit

    typealias ScenderBlock = (_ backString: String) -> Void

    @objc protocol ScenderDelegate:NSObjectProtocol{

      @objc func backTextFieldValue(_ textString:String)

    }

    class scenderVC: UIViewController {

        @IBOutlet weak var textField1: UITextField!

        @IBOutlet weak var textField2: UITextField!

        var block:ScenderBlock?

       weak var delegate:ScenderDelegate?

        

        override func viewDidLoad() {

            super.viewDidLoad()

        }

        

        @IBAction func blockClick(_ sender: UIButton) {

            self.block?(textField1.text!)

            self.dismiss(animated: true, completion: nil)

        }

        

        

        @IBAction func delegateClick(_ sender: Any) {

            if self.delegate != nil && (self.delegate?.responds(to: #selector(ScenderDelegate.backTextFieldValue(_:))))!{

                self.delegate?.backTextFieldValue(textField2.text!)

            }

            

            

            self.dismiss(animated: true, completion: nil)

        }

    }

    提高技能如同提升自信心。
  • 相关阅读:
    DRF JWT认证基础
    Shell简单脚本
    DockerFile案例
    Shell基础知识
    DockerFile基础知识
    tensorflow
    使用cv2将图片分割成相等的部分
    序列化心得
    python正则化表达式
    python--匿名函数(lambda)
  • 原文地址:https://www.cnblogs.com/chims-liu-touch/p/9265094.html
Copyright © 2011-2022 走看看