У меня есть сегментированный элемент управления в 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, и значение метки не обновляется.
Любая помощь будет оценена. Спасибо
mainViewController? Кроме того, я предполагаю, что первый блок кода, который вы показываете, находится в этомSettingsController? Я предполагаю, что вы просто никогда не устанавливаете переменную для нужного вам контроллера. О, и если это родитель, не забудьте сделать переменнуюweak, или вы столкнетесь с циклом сохранения. - person Gero   schedule 06.10.2016