• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

swift中闭包的用法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

正所谓一法通,万法皆通,具体什么意思,你们自己领悟吧。

闭包我想不用多介绍了吧,学过OC的都应该知道,其功能和OC里的Block一样,和通知,在功能上也有相同之处。

先看个界面效果图,用通知也能做出来。我在上面一篇将通知的,也是写的这个功能。

 

//
//  ViewController.swift
//  Swift闭包的用法
//
//  Created by mac on 16/2/5.
//  Copyright © 2016年 ZY. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    
    @IBOutlet weak var textF: UITextField!
    
    @IBOutlet weak var pushButtonAction: UIButton!

    
    override func viewDidLoad() {
        super.viewDidLoad()
       
        pushButtonAction.addTarget(self, action:"pushButtonAction1:", forControlEvents: UIControlEvents.TouchUpInside);
        
        
    }

    
    func pushButtonAction1(btn:UIButton){
        
        
        let viewC = SeconViewController(nibName:"SeconViewController",bundle: nil) as SeconViewController;
       
//        参数回调
        viewC.textback { (text) -> Void in
    
            self.textF.text = text as String;
    
        };
        
        self.presentViewController(viewC, animated: true, completion: { () -> Void in
            
            
        });
//        let a = 25;
//        print("\(a)");
        
    }
    

}

 

 

//
//  SeconViewController.swift
//  Swift闭包的用法
//
//  Created by mac on 16/2/5.
//  Copyright © 2016年 ZY. All rights reserved.
//

import UIKit

class SeconViewController: UIViewController {

    @IBOutlet weak var textF: UITextField!
    
    
    @IBOutlet weak var button: UIButton!
    
    typealias newFuncy = (text : NSString) -> Void;
   
    var _myFuncy = newFuncy?();
    
    
    
    override func viewDidLoad() {
        super.viewDidLoad()

        button.addTarget(self, action:"pushButtonAction1:", forControlEvents: UIControlEvents.TouchUpInside);
        
        
    }
//    闭包值的传递方法
    func textback(mathFunction:(text : NSString) -> Void){
        
        _myFuncy = mathFunction;
        
        
    }


    
    func pushButtonAction1(btn:UIButton){
        
        if((_myFuncy) != nil){
//            调用闭包
           _myFuncy!(text: textF.text!);
            
        }
        
        
        self.dismissViewControllerAnimated(true) { () -> Void in


        };
        
        
    }

   //扩展方面
// 闭包的另类用法,用于接口调用 func dataBack(str:String , mathFunction:(text:String) -> Void){ print("\(str)"); let newText = "erwdd"; mathFunction(text: newText); } // 类方法 class func ushButtonAc(){ } }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
swift关于FDFullscreenPopGesture的右滑返回发布时间:2022-07-13
下一篇:
swift实现水仙花数发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap