我在UILabel上创建了一个名为order1labelThirdViewController

我希望根据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!

}

希望这能满足您的要求。快乐的编码。

09-11 06:04