从另一个视图控制器swift设置UILabel

时间:2016-10-06 07:44:33

标签: ios swift uisegmentedcontrol

我在SettingsController中有一个分段控件。

分段控件可以以摄氏度显示温度 或华氏度。

我有一个mainViewController,我有温度标签,以摄氏度显示当前温度。

单击分段控件时,我想将温度转换为适当的单位并将其显示在mainViewController中。

@IBOutlet weak var temperatureUnitSegmentedControl: UISegmentedControl!
var mainViewController : MainViewController?

@IBAction func temperatureSegmentedControlListener(sender: UISegmentedControl) {

        switch temperatureUnitSegmentedControl.selectedSegmentIndex
        {
        case 0:
            showTemperatureInCelsius()
        case 1:
            showTemperatureInFahrenheit()
        default:
            break;
        }
    }
    func showTemperatureInCelsius(){
        mainViewController?.setTempInCelsius()

    }
    func showTemperatureInFahrenheit(){
            mainViewController?.setTempInFahrenheit()
    }

在mainViewController中,我想进行转换并更新温度标签

func setTempInCelsius(){
        temperatureLabel.text = "In Celsius"
        log?.debug("Temperature Celsius\(batteryTemperatureLabel.text)")
    }

    func setTempInFahrenheit(){
        temperatureLabel.text = "In Fahrenheit"
        log?.debug("Temperature Fahrenheit\(batteryTemperatureLabel.text)")
    }

此代码未触及mainViewController中的函数,并且标签的值未更新。

任何帮助将不胜感激。谢谢

2 个答案:

答案 0 :(得分:0)

您可以使用委托或协议。 click here

如果您必须更新视图,则可以使用nsnotificationcenter Click here

答案 1 :(得分:0)

Yoa只需向目标视图控制器发送操作即可设置UIApplication.sharedApplication().sendAction("setTempInCelsious", to: nil, from: nil, forEvent: nil)

等值

希望这有帮助。