1

シンプルだけど動かない!誰か助けてくれませんか?以下のコードを使用して、UIButton の選択を切り替えるだけです。

-(IBAction) buttonPressed:(id)sender {
    if ([self.mybutton isSelected]) {
        NSLog(@"selected");
        [self.mybutton setSelected:NO];
    } else {
       NSLog(@"not selected");
        [self.mybutton setSelected:YES];
    }
    NSLog([self.mybutton isSelected] ? @"Yes" : @"No");
}

ボタンを何度押しても「未選択」と「いいえ」が印刷されてしまいます。UIButton が「選択済み」状態に設定されないのはなぜですか?

4

1 に答える 1

3

あなたのコードは正しいように見えるので、次のようにして簡単にすることができます。

-(IBAction) buttonPressed:(UIButton *)sender {
   sender.selected = !sender.selected;
}

コードが正しく動作しないのはなぜですか? おそらくそうself.mybuttonですnil(確認できます)。nilアウトレット接続とプロパティ定義を確認してください... 参照:オブジェクトではないメッセージを送信すると、どちらかnilまたは単純なタイプの場合はデフォルト値が返されます ( の場合は 0 intNOの場合BOOLは など)。

于 2012-08-17T07:16:04.660 に答える