私はUIButtonオブジェクトで構成されたボタンという配列を持っています。次のように入力します。NSMutableArrayのUIButtonオブジェクトのメソッドを呼び出すObjective-C
for (int i=0; i<self.numButtons; i++) {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"Title" forState:UIControlStateNormal];
button.frame = CGRectMake(xCoord-40, y, 80, 20);
[button setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
[button setTag:i];
[self.buttons addObject:button];
[self.view addSubview:button];
y+= 45;
}
これらのボタンの動作はbuttonActionです。このアクションは、選択されたボタンの色を変更するはずです。ここに私はそれをどのように実装したのですか:
-(void) buttonAction:(id)sender{
int num = (int)[sender tag];
[[self.buttons objectAtIndex:num] setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
NSLog(@"%@", [self.buttons objectAtIndex:buttonClicked].titleLabel.text);
}
色の変化はありません。ボタンのタイトルをNSLogにしようとしても、nullを返します。だから私の質問は、私はこれを修正することができるだけでなく、配列内のオブジェクトのメソッドを呼び出す方法ですか?どんな助けもありがとう。ありがとう!
'self.buttons'はおそらく' nil'です。 – rmaddy