swift页面传值之block(闭包)传值
2015-10-05 10:11
429 查看
页面1 跳转到页面2。如果想从页面1得到页面2的值的话,其实可以在页面2中调用:
还可以用其他方式:block,KVO,通知中心,delegate传值等。
block方式:
第二个页面:
第一个页面:
( self.presentedViewController as! ViewController).label.text = self.textField.text
还可以用其他方式:block,KVO,通知中心,delegate传值等。
block方式:
第二个页面:
class VC2: UIViewController,UITextFieldDelegate { var block:((String)->())?//定义一个闭包 @IBOutlet weak var textField: UITextField! override func viewDidLoad() { super.viewDidLoad() self.textField.delegate = self } func textFieldShouldReturn(textField: UITextField) -> Bool { //点击键盘的return 的时候将block的值传回。 if block != nil{ //此处的block 其实已经是 第一个页面getValueFromNextPage 的引用了 block!(textField.text!) } self.dismissViewControllerAnimated(true, completion: nil) return true } }
第一个页面:
class ViewController: UIViewController { @IBOutlet weak var label: UILabel! override func viewDidLoad() { super.viewDidLoad() } //定义一个函数,其实也可以定义一个block: var block:(String)->Void = {self.label.text = $0} func getValueFromNextPage(string:String){ self.label.text = string } override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { let vc2 = segue.destinationViewController as! VC2 //第二个页面的block并没有初始化,因为第二个页面的block是第一个页面getValueFromNextPage的引用。 vc2.block = getValueFromNextPage } }
相关文章推荐
- Swift学习笔记13——类继承(Inheritance)
- Swift语法之 guard
- [swift]监测iphone自由落体动作
- Swift过程控制和功能
- Swift学习笔记12——下标(Subscripts)
- Swift学习笔记11——方法(Method)
- Swift学习笔记10——属性(Properties)
- Swift 线程
- Swift 2.0 之map 与 zip
- Swift学习笔记9——类和结构体(Classes and Structures)
- Swift学习- 继承(十三)
- Swift学习笔记8——枚举类(Enumerations)
- swift map
- 【面试必备】Swift 面试题及其答案
- 寒哥带你深入了解下Swift中的Value Type
- Swift-循环控制新特性
- Swift - 元组的用法
- Swift 运算符
- Swift学习(二)
- Swift学习(一)