1

これが単純な質問である場合は許してください。ただし、UISwitchはブール変数ですか?そうでない場合、どうすればBOOLにすることができますか?

なぜ困っているのか説明させてください。

FlipsideViewControllerで変数を宣言しました。

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

アクセサーの作成も

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

編集:そしてもちろん私はそれを合成します。

次に、Interface BuildermySwitchで、そのビューで作成したスイッチに接続しました。

、私は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 に答える