swift基础利用闭包在两个视图界面传值
2016-06-16 08:39
471 查看
视图ViewController
class ViewController: UIViewController{
@IBOutlet weak var valueLabel: UILabel!
var secVC:SecondController = SecondController()
override func viewDidLoad() {
super.viewDidLoad()
secVC.myClosure = {(text:String) -> Void in
print("\(text)")
self.valueLabel.text = text
}
}
@IBAction func push() {
self.navigationController?.pushViewController(secVC, animated: true)
}
}
视图二
import UIKit
// 闭包
typealias sendValueClosure = (text:String)->Void
class SecondController: UIViewController {
var myClosure:sendValueClosure?
var textField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.redColor()
textField = UITextField(frame: CGRectMake(30, 100, 260, 30))
textField.borderStyle = UITextBorderStyle.RoundedRect
self.view.addSubview(textField)
let btn = UIButton(frame: CGRectMake(30, 150, 260, 30))
btn.setTitle("click", forState: UIControlState.Normal)
btn.addTarget(self, action: #selector(SecondController.click), forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(btn)
}
// 点击这里传值过去
func click() {
let str:String = textField.text!
if (myClosure != nil){
myClosure!(text:str)
}
self.navigationController?.popViewControllerAnimated(true)
}
}
当点击click
运行结果为
class ViewController: UIViewController{
@IBOutlet weak var valueLabel: UILabel!
var secVC:SecondController = SecondController()
override func viewDidLoad() {
super.viewDidLoad()
secVC.myClosure = {(text:String) -> Void in
print("\(text)")
self.valueLabel.text = text
}
}
@IBAction func push() {
self.navigationController?.pushViewController(secVC, animated: true)
}
}
视图二
import UIKit
// 闭包
typealias sendValueClosure = (text:String)->Void
class SecondController: UIViewController {
var myClosure:sendValueClosure?
var textField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.redColor()
textField = UITextField(frame: CGRectMake(30, 100, 260, 30))
textField.borderStyle = UITextBorderStyle.RoundedRect
self.view.addSubview(textField)
let btn = UIButton(frame: CGRectMake(30, 150, 260, 30))
btn.setTitle("click", forState: UIControlState.Normal)
btn.addTarget(self, action: #selector(SecondController.click), forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(btn)
}
// 点击这里传值过去
func click() {
let str:String = textField.text!
if (myClosure != nil){
myClosure!(text:str)
}
self.navigationController?.popViewControllerAnimated(true)
}
}
当点击click
运行结果为
相关文章推荐
- swift学习笔记1——基础部分
- Swift3.0新特性和改动
- Swift多线程之GCD
- Swift字符串截取
- Swift3.0带来的变化汇总系列一——字符串与基本运算符中的变化
- swift 与JavaScript之间方法的相互调用及传值
- swiftUI基础值UIImagePickerController
- swift读取plist文件内容用UITableView展示
- swift两个视图控制器之间的传值
- swift程序进入后台
- iOS动画学习笔记2 Video Tutorial iOS Animation with Swift - Ray Wenderlich
- swift 调用 C语言库
- swift 计算label高度与长度
- Swift定义一个全局变量字符串
- swift果冻效果
- swift之classfromString
- swift单例的创建与使用
- Swift对字典的常用基本使用
- swift 声明变量的?和!的区别
- swift基础之json解析