1

如果这是一个简单的问题,请原谅我,但 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];

所以,我传递了mySwitchUISwitch 的状态。

4

1 回答 1

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];
于 2010-09-30T20:15:32.300 回答