如何使 UISwitch 成为 BOOL?
如果这是一个简单的问题,请原谅我,但是 UISwitch 是布尔变量吗?如果不是,我怎样才能使它成为BOOL?
请允许我解释一下为什么我遇到了麻烦。
我在 FlipsideViewController 中声明了我的变量。
UISwitch* mySwitch; //switch used to turn label2 on/off
还创建了一个访问器
@property (nonatomic, retain) IBOutlet UISwitch *mySwitch;
编辑:当然我合成了它。
然后在 Interface Builder 中我连接了mySwitch
到我在该视图上创建的 Switch。
现在,我正在使用一个方法,就是在 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 的状态。
Forgive me if this is a simple question, but is a UISwitch a boolean variable? If it is not, how can I make it BOOL?
Please allow me to explain why I'm having trouble.
I declared my variable in my FlipsideViewController.
UISwitch* mySwitch; //switch used to turn label2 on/off
also creating an accessor
@property (nonatomic, retain) IBOutlet UISwitch *mySwitch;
EDIT: and of course I synthesize it.
Then in Interface Builder I connected mySwitch
to a Switch I created on that view.
NOW, I have a method that I'm using which is this in the MainViewController:
- (void)updateLabels:(NSString *)text :(BOOL)isOn {
[nameLabel setText:text];
if (isOn==YES)
[onLabel setText:(@"ON")];
else
[onLabel setText:(@"OFF")]; }
The problem I'm having is that whenever I run the program, the label always displays "OFF". Do you have any clue why? I'm really helpless.
I would really appreciate any help on this, and again I apologize for being such a newbie. :)
EDIT: This is how I'm calling the method...
[self.delegate updateLabels: myTextField.text : mySwitch.state];
So, I'm passing in the state of the mySwitch
UISwitch.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要将 UISwitch 连接到更新 isOn 的 IBAction 方法,或者读取测试中开关的状态。
这是后者: 更新 在澄清视图控制器之间的关系后更改了代码。
我希望 FlipSideViewController 中存在对 updateLabels 的调用,应该如下所示:(我显然不知道你的变量名称。)
You either need to connect the UISwitch to an IBAction method that updates isOn, or read the state of the switch in your test.
Here's the latter: UPDATE Changed the code after you clarified the relationships between the view controllers.
The call to updateLabels, which I'm hoping exists in FlipSideViewController, should look something like this: (I obviously don't know your variables names.)