Ich habe ein Array namens buttons, das aus UIButton-Objekten besteht. Ich befülle es wie folgt:Aufrufmethoden für UIButton-Objekte in NSMutableArray 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;
}
Die Aktion für diese Schaltflächen ist buttonAction. Diese Aktion soll die Farbe der ausgewählten Schaltfläche ändern. Hier ist, wie ich es implementiert habe:
-(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);
}
Das Ergebnis ist, dass es keine Farbänderung gibt. Auch wenn ich versuche, den Titel der Schaltfläche zu NSLog, gibt es (null) zurück. Also meine Frage ist, wie kann ich das beheben, sondern auch, wie ich Methoden auf Objekte innerhalb von Arrays aufrufen? Jede Hilfe wäre willkommen. Vielen Dank!
'self.buttons' ist wahrscheinlich' nil'. – rmaddy