zoukankan      html  css  js  c++  java
  • swift-delegate(代理)或者block传值

    1:delegate或者block传值

    import UIKit
    class ViewController: UIViewController,TestDelegatePassValueDelegate {
    
        @IBOutlet weak var TFContent: UITextField!
        override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view, typically from a nib.
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    
        @IBAction func delegateOrBlockBtnClick(sender: AnyObject) {
            TFContent.text = ""
            let storyBoard = UIStoryboard(name: "Main", bundle: nil)
            let testVCtl = storyBoard.instantiateViewControllerWithIdentifier("TestDelegateOrBlockViewController") as!TestDelegateOrBlockViewController;
            /**设置代理*/
            testVCtl.delegate = self
            /**block回调传值*/
            testVCtl.passValueUseBlock { (valueString) -> Void in
                
                self.TFContent!.text = valueString  as String
                
            }
            self.navigationController!.pushViewController(testVCtl, animated: true);
            
            
        }
        /**代理函数*/
        func passValueUseDelegate(valueString: NSString)
        {
            self.TFContent!.text = valueString as String
        }
       
    }
    import UIKit
    import Foundation
    /**定义一个block*/
    typealias TestBlockCompleteHandler = (valueString: NSString)->Void
    /**声明定义协议*/
    protocol TestDelegatePassValueDelegate:NSObjectProtocol
    {
        func passValueUseDelegate(valueString: NSString)
    
    }
    
    class TestDelegateOrBlockViewController: UIViewController
    {
    
        @IBOutlet weak var TFContent: UITextField!
        var delegate:TestDelegatePassValueDelegate?
       
        var myBlockHandler:TestBlockCompleteHandler?
        override func viewDidLoad() {
            super.viewDidLoad()
    
            // Do any additional setup after loading the view.
        }
    
        override func didReceiveMemoryWarning()
        {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
        
        
      //MARK: - 用代理来实现传值
        @IBAction func delegateBtnClick(sender: AnyObject)
        {
            
             TFContent.resignFirstResponder()
            if ((delegate != nil) && (delegate?.respondsToSelector("passValueUseDelegate:") != nil))
            {
              delegate?.passValueUseDelegate(TFContent.text!)
            
            }
            self.navigationController?.popViewControllerAnimated(true)
            
            
            
        }
        
        //MARK: - 用block来实现传值
        @IBAction func blockBtnClick(sender: AnyObject)
        {
            
            TFContent.resignFirstResponder()
            myBlockHandler?(valueString: self.TFContent.text!)
            self.navigationController?.popViewControllerAnimated(true)
        
        }
        
        func passValueUseBlock(blockHandler: TestBlockCompleteHandler)
        {
          myBlockHandler = blockHandler
        
        }

  • 相关阅读:
    微信带参数的小程序码生成并上传到七牛云(java)
    数据结构-数组和广义表-思维导图
    数据结构-串-思维导图
    数据结构-栈与队列-思维导图
    数据结构-线性表-思维导图
    python 拆分csv文件
    记录自己写js一个bug
    win10快捷键收藏
    重装系统win10最新版(完整版)
    formController的函数的基本作用
  • 原文地址:https://www.cnblogs.com/thbbsky/p/4889039.html
Copyright © 2011-2022 走看看