Как установить тег для кнопки программно?
Я позже хочу сравнить с тегами для вывода
Я пробовал это
-(IBAction)buttonPressed:(id)sender{
NSLog(@"%d", [sender tag]);
}
но это просто вылетает из приложения.
Есть другие идеи?
Как установить тег для кнопки программно?
Я позже хочу сравнить с тегами для вывода
Я пробовал это
-(IBAction)buttonPressed:(id)sender{
NSLog(@"%d", [sender tag]);
}
но это просто вылетает из приложения.
Есть другие идеи?
Вам нужно отдать отправителя как UIButton:
-(IBAction)buttonPressed:(id)sender{
UIButton *button = (UIButton *)sender;
NSLog(@"%d", [button tag]);
}
Изменить: Что касается сообщения "непризнанный селектор"...
Основываясь на вашем сообщении об ошибке, он не может вызвать метод ButtonPressed в первую очередь. Обратите внимание, что в сообщении об ошибке он ищет "buttonPressed" (без двоеточия в конце), но метод называется "buttonPressed:". Если вы устанавливаете цель кнопки в коде, убедитесь, что для селектора установлено значение buttonPressed: вместо простого нажатия кнопки "Push". Если вы устанавливаете цель в IB, xib может быть не синхронизирован с кодом.
Кроме того, ваш исходный код "[тег отправителя]" также должен работать, но для доступа к свойствам, зависящим от кнопки, вам все равно нужно отдать его в UIButton.
Я знаю, что это старый вопрос, и многие ответы на него были заданы в других вопросах, но он появился в поиске Google как второй сверху. Итак, вот ответ на то, почему он рушился. Измените его на 'button.tag'
-(void)myMethod
{
UIButton *theButton = [UIButton buttonWithType:UIButtonTypeCustom];
[theButton addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchDown];
theButton.tag = i;//or whatever value you want. In my case it was in a forloop
}
-(void)buttonPressed:(id)sender
{
UIButton *button = (UIButton *)sender;
NSLog(@"%d", button.tag);
}
Нет необходимости в литье. Это должно работать:
-(IBAction)buttonPressed:(UIButton*)sender
{
NSLog(@"%d", [sender tag]);
}