我在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中的函数,并且标签的值未更新。
任何帮助将不胜感激。谢谢
答案 0 :(得分:0)
您可以使用委托或协议。 click here
如果您必须更新视图,则可以使用nsnotificationcenter Click here
答案 1 :(得分:0)
Yoa只需向目标视图控制器发送操作即可设置UIApplication.sharedApplication().sendAction("setTempInCelsious", to: nil, from: nil, forEvent: nil)
希望这有帮助。