У меня есть ViewController со многими .xib-файлами (UIViews) и множеством UIButton.Поэтому идея состоит в том, чтобы сохранить их в массиве [ViewID] [ButtonID] для удобного доступа к ним с помощью счетчиков, чисел и т. Д.
***ViewController.h
IBOutlet UIButton *button0101;
IBOutlet UIButton *button0102;
IBOutlet UIButton *button0103;
IBOutlet UIButton *button0201;
...
NSMutableArray *buttonsArray;
...
@property (nonatomic, retain) IBOutlet UIButton *button0101;
@property (nonatomic, retain) IBOutlet UIButton *button0102;
@property (nonatomic, retain) IBOutlet UIButton *button0103;
@property (nonatomic, retain) IBOutlet UIButton *button0201;
...
@property (nonatomic, retain) NSMutableArray *buttonsArray;
***ViewController.m
@synthesize allThoseButtons/Arrays;
...
-(void)viewDidLoad {
self.buttonsArray = [[NSMutableArray alloc] init];
NSMutableArray *helpArray = [[NSMutableArray alloc] init];
[helpArray addObject:self.button0101];
[helpArray addObject:self.button0102];
[helpArray addObject:self.button0103];
[self.buttonsArray addObject:helpArray];
[helpArray removeAllObjects];
[helpArray addObject:self.button0201];
...
[self.buttonsArray addObject:helpArray];
[helpArray removeAllObjects];
...
Я могу получить доступ к массиву, я могу вывести правильные предопределенные заголовкикнопки и т. д., но я не могу изменить кнопки (например, backgroundimage, titleLabel и т. д.) при доступе к ним с помощью кнопок Array.
-(IBAction)pushButton:(id)sender {
//this does work
[(UIButton *)sender setTitle:@"Test" forState:UIControlStateNormal];
//this has no effect at all (even if I have chosen the correct button in the array, I can check that using the predefined tag and title)
[(UIButton *)[helpButtons objectAtIndex:index2] setTitle:@"Test" forState:UIControlStateNormal];
}
Кажется, что ссылка, сохраненная в NSMutableArray, отличается от интерфейса InterfaceBuilder.но новый объект.Если я выведу объект напрямую через NSLog, я даже смогу увидеть другой идентификатор памяти.Но что я сделал не так?Как я могу сохранить реальную ссылку в массиве для доступа к этим кнопкам?
Спасибо и привет, Пэт