Swift 傳值之閉包傳值

Swift的閉包傳值和OC中的block傳值非常相似

項目的建立和之前的屬性傳值和代理傳值類似 

屬性傳值:http://blog.csdn.net/zhangjitao_boke/article/details/50606185

代理傳值:http://blog.csdn.net/zhangjitao_boke/article/details/50606707

閉包傳值:http://blog.csdn.net/zhangjitao_boke/article/details/50607325

通知傳值:http://blog.csdn.net/zhangjitao_boke/article/details/50607818

單例傳值:http://blog.csdn.net/zhangjitao_boke/article/details/50608066

直接上代碼

在FirstViewController中

//
// FirstViewController.swift
// BiBaoPassValue
//
// Created by JT on 16/1/29.
// Copyright © 2016年 JT. All rights reserved.
//

import UIKit

class FirstViewController: UIViewController {

@IBOutlet weak var firstTextField: UITextField!

override func viewDidLoad() {
super.viewDidLoad()
}

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
let storyBoard = UIStoryboard.init(name: "Main", bundle: nil)
let secondVC = storyBoard.instantiateViewControllerWithIdentifier("secondVC") as! SecondViewController
// 給secondVC的閉包實現方法
secondVC.passValue = { (text:String) -> Void in
// 閉包方法傳過來值
self.firstTextField.text = text
}

self.navigationController?.pushViewController(secondVC, animated: true)
}
}

SecondViewController中實現代碼

//
// SecondViewController.swift
// BiBaoPassValue
//
// Created by JT on 16/1/29.
// Copyright © 2016年 JT. All rights reserved.
//

import UIKit

// 定義一個閉包類型
typealias passValueClosure = (String) -> Void


class SecondViewController: UIViewController {

@IBOutlet weak var secondTextField: UITextField!
// 閉包變量
var passValue:passValueClosure?


override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: self, action: "backAction")
}

func backAction() {
// 如果閉包不爲空
if passValue != nil {
self.passValue!(secondTextField.text!)
}

self.navigationController?.popViewControllerAnimated(true)
}

}

這樣就能實現閉包傳值了,閉包傳值記住幾點

1 聲明閉包類型

2 在要傳值的界面定義閉包變量

3 判斷閉包變量是否爲nil,如果不爲nil的話,就執行閉包傳值

4 在接收的控制器裏設置傳值控制器閉包的方法,接收值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章