我有一个ViewController,“ViewController”。
在此视图中,有一个属性'userEmailText.text',我想将其传递给另一个视图控制器,“CreateNewCommunity”
我有一个连接到具有标识符'createCommunitySegue'的segue的按钮。我已经创建了点击它的代码:
@IBAction func createCommunityTapped(_ sender: AnyObject) {
self.performSegue(withIdentifier: "createCommunitySegue", sender: self)
}
在我的第二个视图控制器中,“CreateNewCommunity”我有一个变量:
var myEmail: String?
我已经开始构建准备从segue接收数据的代码了:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "createCommunitySegue" {
let createCommunityController: CreateNewCommunity = segue.destination as! CreateNewCommunity
createCommunityController.myEmail =
}
}
如何完成此设置,以便“ViewController”通过segue'createCommunitySegue'将“userEmailText.text”初始值传递给“CreateNewCommunity”视图控制器?
由于
答案 0 :(得分:1)
为什么不
createCommunityController.myEmail = userEmailText.text
我认为您的问题是您对如何将数据从一个vc传递到另一个vc有错误的想法。
将数据传递给的VC不会接收数据。 VC是主动将数据传递给需要它的VC的。
我的猜测是你把这段代码
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "createCommunitySegue" {
let createCommunityController: CreateNewCommunity = segue.destination as! CreateNewCommunity
createCommunityController.myEmail =
}
}
CreateNewCommunity
控制器中的!您应该将上述内容放在ViewController
而不是CreateNewCommunity
中,并写入
createCommunityController.myEmail = userEmailText.text
它应该有用。
答案 1 :(得分:0)
VC1
@IBAction func createCommunityTapped(_ sender: AnyObject) {
self.performSegue(withIdentifier: "createCommunitySegue", sender: self)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "createCommunitySegue" {
let createCommunityController: CreateNewCommunity = segue.destination as! CreateNewCommunity
createCommunityController.myEmail = userEmailText.text
}
}
VC2
var myEmail: String?
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
print(myEmail)
}