我在UILabel
上创建了一个名为order1label
的ThirdViewController
。
我希望根据SecondViewController
中的决定在该标签上显示文本。
下面是这两个视图控制器的代码。当我单击SecondViewController
中的Submit UIButton时,我希望orderType
更改为Delivery
上的ThirdViewController
,并且我希望这会反映在order1label
中,但事实并非如此。它仍然说Takeout
。
我做错了什么?我一直在寻找答案几个小时,而且似乎没有针对这个极其简单的问题的简单解决方案。
import UIKit
class SecondViewController: UIViewController{
var orderType = "Takeout"
@IBAction func SubmitOrderClicked(sender: UIButton) {
orderType = "Delivery"
}
}
这是我的
ThirdViewController
的代码:import UIKit
class ThirdViewController: UIViewController {
var orderTextController = SecondViewController().orderType
override func viewDidLoad() {
super.viewDidLoad()
order1Label.text = orderTextController
}
override func viewWillAppear(animated: Bool) {
order1Label.text = orderTextController
}
@IBOutlet var order1Label: UILabel!
}
最佳答案
在orderType
中声明一个全局变量SecondViewController
,例如:
import UIKit
var orderType = "Takeout"
class SecondViewController: UIViewController{
@IBAction func SubmitOrderClicked(sender: UIButton) {
orderType = "Delivery"
}
}
这是ThirdViewController的代码:
import UIKit
class ThirdViewController: UIViewController {
override func viewWillAppear() {
super.viewWillAppear()
order1Label.text = orderType
}
@IBOutlet var order1Label: UILabel!
}
希望这能满足您的要求。快乐的编码。