Я хочу, чтобы можно было определить, какая кнопка нажата. Интересно, есть ли какой-нибудь метод класса UIButton, который может быть вызван автоматически при нажатии кнопки, что позволяет мне узнать текст или тег кнопки нажатой и передать это переменной? Или какой-то объектный метод event-c, который делает то же самое?Обнаружение нажатой кнопки
Я знаю, что эта тема была опубликована здесь раньше. Общий ответ, кажется, что это будет решение:
В файле .h
- (IBAction)buttonClicked:(UIButton *)sender;
В .m файл
- (IBAction)buttonPressed:(UIButton *)sender{
// Do something her to display which button pressed
}
Я также видел другие примеры с такими именами, как buttonPressed , onButtonTao и т. д.
Поэтому я предполагаю, что этот метод нужно вызывать с каждой кнопки. Однако это не работает, xcode жалуется, когда я пытаюсь назначить один и тот же метод более чем одной кнопке.
Следующий пример, оставленных здесь в Stack, использует те же действия, но программно:
for(int i = 0; i < 5; i++) {
UIButton* aButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[aButton setTag:i];
[aButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[aView addSubview:aButton];
}
// then ...
- (void)buttonClicked:(UIButton*)button
{
NSLog(@"Button %ld clicked.", (long int)[button tag]);
}
Итак, что я здесь отсутствует, почему Xcode не принимает один и тот же метод для нескольких кнопок? И есть ли другой способ определить, какая кнопка нажата, не подключая определенное действие к каждой кнопке?
Каким образом Xcode жалуется? – Wain
Подключение нескольких элементов управления к одному и тому же методу действия является, безусловно, возможным. Вы должны быть более конкретными в этой проблеме. –