У мене в XIB кнопка 17. І я встановив їм значення тегів від 1 до 17.
Хтось може мені сказати, як з’єднати всі 17 кнопок з одним ім'ям змінної в .h і отримати певну кнопку в .m з її значенням тега.
Дякую
Відповіді:
1 для відповіді № 1Я щойно це перевірив, і знаю, що якщо ви виберетевсі ваші кнопки в раскадровках і керування перетягніть їх у відповідний контролер у помічнику редактора, ви можете створити колекцію розеток, що представляють усі кнопки. Отриманий код:
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *buttons;
1 для відповіді № 2
ні, на мій досвід, це неможливо. IBOutlet, тобто Interlet Builder Outlet, завжди посилається на одне з'єднання між компонентом інтерфейсу (як кнопка) та змінною в інтерфейсі (наприклад, IBOutlet UIButton * myButton). Це відношення один до одного.
1 для відповіді № 3
Потрібно бути IBOutlet
на кожну кнопку, тому вам потрібно буде створити всі 17 з них. Підключіть кнопки до розеток окремо, і тоді ви зможете помістити їх у масив всередині вашого ініціалізатора, якщо вони вам потрібні в масиві.
Ви можете заощадити на IBAction
Однак методи: зробіть такий метод, як цей
-(IBAction)buttonClicked:(id)sender {
}
Ви можете підключити цей метод до всіх кнопок і подивитися на тег (id)sender
щоб вирішити, яка кнопка називається вашою дією.
0 для відповіді № 4
Ви не можете вказати одну посилання на кнопку 17, але ви можете призначити один метод 17 кнопкам, як, наприклад, @dasblinkenlight
Ви повинні просто встановити IBAction
метод для всіх подій, що натиснули кнопку і, використовуючи значення тегу, ви можете отримати доступ до потрібної кнопки
-(IBAction)buttonClicked:(id)sender {
int j = [sender tag];
NSLog(@"Clicked Button %i", j);
}