请原谅我这是一个简单的问题,但是UISwitch是一个布尔变量吗?如果不是,我怎么能把它改成BOOL?
请允许我解释为什么我遇到麻烦。
我在我的FlipsideViewController中声明了我的变量。
UISwitch* mySwitch; //switch used to turn label2 on/off
还创建一个访问者
@property (nonatomic, retain) IBOutlet UISwitch *mySwitch;
编辑:当然我合成了它。
接口生成器中的 然后我将mySwitch
连接到我在该视图上创建的Switch。
NOW ,我有一个方法,我正在使用的是MainViewController中的 :
- (void)updateLabels:(NSString *)text :(BOOL)isOn {
[nameLabel setText:text];
if (isOn==YES)
[onLabel setText:(@"ON")];
else
[onLabel setText:(@"OFF")]; }
我遇到的问题是每当我运行程序时,标签始终显示“OFF” 。你有什么线索的原因吗?我真的很无奈。
我真的很感激任何帮助,我再次为这样的新手道歉。 :)
编辑:这就是我调用方法的方式......
[self.delegate updateLabels: myTextField.text : mySwitch.state];
所以,我正在传递mySwitch
UISwitch的状态。
答案 0 :(得分:1)
您需要将UISwitch连接到更新isOn的IBAction方法,或者读取测试中的开关状态。
以下是后者: UPDATE 在您澄清视图控制器之间的关系后更改了代码。
- (void)updateLabels:(NSString *)text isOn:(BOOL)isOn {
[nameLabel setText:text];
if (isOn == YES) {
[onLabel setText:(@"ON")];
} else {
[onLabel setText:(@"OFF")];
}
}
我希望在FlipSideViewController中存在对updateLabels的调用,看起来应该是这样的:(我显然不知道你的变量名。)
[self.delegate updateLabels:self.myTextField.text isOn:self.mySwitch.on];