Установить UILabel из другого контроллера вида swift

У меня есть сегментированный элемент управления в SettingsController.

Поделенное на сегменты управление может показать температуру в градусах Цельсия
или по Фаренгейту.

I have a mainViewController where I have the temperature label which displays current temperature in celsius.

При нажатии на сегментированный элемент управления я хочу преобразовать температуру в соответствующий блок и отобразить его в 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 ответа

  1. Yoa может просто послать действие к вашему регулятору взгляда назначения для того чтобы установить значения как UIApplication.sharedApplication().sendAction("setTempInCelsious", to: nil, from: nil, forEvent: nil)

    Надеюсь, это поможет.