在SwiftController 4中使用协议+委托在viewController之间发送数据

时间:2018-07-12 06:25:51

标签: xcode swift4

我是Swift的初学者,我一直在努力理解使用委托和协议在page_1和page_2之间发送变量的方式。

我有一个两页的应用程序:ViewController1.swift和ViewController2.swift -在第1页(ViewController1.swift),我有一个文本框(TextBoxControl)和一个按钮。 -在第2页(ViewController2.swift),我有一个标签和一个按钮

我想将xtbox中的文本从第1页发送到第2页,并在第2页中打印。

问题是委托始终为nil(它在控制台上打印 ...打印(“代表为零”)。 )

技术:XCODE版本9.4.1,快速4

我该如何解决?

谢谢。

1 个答案:

答案 0 :(得分:1)

如果要将数据从ViewController1发送到ViewController2,则只需执行以下步骤。

步骤1:

在ViewController2中设置一个变量:

var strValue : String?

步骤2:

在按钮操作ViewController1中将此代码写入

let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
let destination = storyboard.instantiateViewController(withIdentifier: "ViewController2") as! ViewController2
destination.strValue = yourTextBoxControl.text
self.navigationController?.pushViewController(destination, animated: true)

步骤3:

在ViewController2类中,您可以轻松地获得以下值:

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

感谢希望能对您有所帮助。