正向传值:
1、在B界面中声明一个公开接收的属性,可以是字符串或者整形变量
var passValue = ""
2、在A界面跳转B界面方法前,给B界面的控制器接收属性赋值
welcomeVc.passString1 = passValue
3、在B界面加载视图或者视图显示时,利用控件显示公开接收属性值
self.showTextField.text = passValue
反向传值:
a、Block闭包使用步骤:
1.在B界面中声明一个block
typealias PassValueBlock = (String, String)->()
2.持有一个block变量
var backBlock: PassValueBlock?
3.调用
if self.backBlcok != nil {
if let tempStr1 = self.showTF1.text, let tempStr2 = self.showTF2.text {
self.backBlcok!(tempStr1, tempStr2)
}
}
4.在A界面中需要接受值的地方
let welcomeVc = WelcomeViewController()
welcomeVc.backBlcok = {
(backStr1: String, backStr2: String) -> Void in
self.usernameTextField.text = backStr1
self.passwordTextField.text = backStr2
}
b、Delegate委托使用步骤:
1.在B界面中声明一组公开的协议
//声明一组公开的协议(反向传值)
protocol PassValueDelegate: NSObjectProtocol {
func testDelegate(str1: String, str2: String) -> Void
}
2.在B界面中声明一个公开的delegate属性
weak var delegate: PassValueDelegate?
3.向delegate发送消息,把参数传送给被委托方
if self.delegate != nil {
if let tempStr1 = self.showTF1.text, let tempStr2 = self.showTF2.text {
delegate?.testDelegate(str1: tempStr1, str2: tempStr2)
}
}
4.遵守协议
5.实现协议中规定的方法,在A界面中需要接受值的地方
func testDelegate(str1: String, str2: String) -> Void{
self.usernameTextField.text = str1
self.passwordTextField.text = str2
}
6.将自己设置成被委托对象
welcomeVc.delegate = self
网友评论