Как сделать UISwitch BOOL? - PullRequest
       14

Как сделать UISwitch BOOL?

1 голос
/ 01 октября 2010

Простите, если это простой вопрос, но является ли UISwitch булевой переменной? Если это не так, как я могу сделать это BOOL?

Пожалуйста, позвольте мне объяснить, почему у меня проблемы.

Я объявил свою переменную в моем FlipsideViewController.

UISwitch* mySwitch;     //switch used to turn label2 on/off

также создает аксессор

@property (nonatomic, retain) IBOutlet UISwitch *mySwitch;

РЕДАКТИРОВАТЬ: и, конечно, я его синтезирую.

Затем в Интерфейсном Разработчике я подключил mySwitch к Коммутатору, который я создал в этом представлении.

СЕЙЧАС , у меня есть метод, который я использую, это в 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.

1 Ответ

1 голос
/ 01 октября 2010

Вам нужно либо подключить UISwitch к методу IBAction, который обновляет isOn, либо прочитать состояние коммутатора в вашем тесте.

Вот последнее: UPDATE Изменен код послеВы прояснили отношения между контроллерами представления.

- (void)updateLabels:(NSString *)text isOn:(BOOL)isOn {
    [nameLabel setText:text]; 
    if (isOn == YES) {
       [onLabel setText:(@"ON")];
    } else {
       [onLabel setText:(@"OFF")]; 
    }
}

Вызов updateLabels, который, я надеюсь, существует во FlipSideViewController, должен выглядеть примерно так:

[self.delegate updateLabels:self.myTextField.text isOn:self.mySwitch.on];
...