2009-08-06 3 views
1

У меня есть три кнопки, установленная в Interface Builder, каждый связанно через touchUpInside к btnSelection:действия UIButton touchUpInside стрельбы несколько раз за клик

- (IBAction)btnSelection:(id)sender { 
    NSLog(@"tag: %i", [sender tag]); 
} 

В моей консоли, первый клик регистрируется правильно (после второго или так задержка, которая кажется немного странной), но любое последующее касание любой из трех кнопок приводит к первой регистрации предыдущего значения тега, а затем регистрации нового тега.

касания # 1 (БТН ж/тега = 0):

Тег: 0

касания # 2 (БТН ж/метка = 1):

Тег: 0 тег: 1

сенсорный # 3 (БТН ж/тега = 2):

тег: 1 тег: 2

и так далее.

Я не могу понять, почему два события после входа каждый раз (с первым из которых ранее коснулся кнопки.

ответ

3

Одной из возможных причин является то, что если вы подключили вашу кнопку на событие, а затем копируется что кнопка и подключил событие еще раз, вы можете называть вашу btnSelection функцию дважды.

в интерфейсе строитель, убедитесь, что у вас есть только один обратный вызов btnSelection

+0

Спасибо за ответ. У меня определенно есть только один обратный вызов для btnSelection для каждой кнопки. Кнопки отличаются друг от друга и создаются индивидуально, поэтому им не следует (и по всем учетным записям нет) иметь какие-либо оставшиеся обратные вызовы от дублирования друг от друга. –

1

Поставьте точку останова в вашей функции обратного вызова и увидеть, где вызов идет от. То, что вы описываете, работает отлично в 100s из 1000 приложений - вы называете свою рутину 2x, так или иначе.

(Без обид, но это ваш код. :)

+2

В моем случае это был мой код, я подключался к событию каждый раз, когда устанавливал значение свойства. Upvoted. – Irwin

0

Я знаю, что это не было включен в вопросе, но в том случае, если вы могли бы иметь UIButton в пользовательской UITableViewCell, убедитесь, что не связывайтесь с выбором при настройке ваших ячеек для повторного использования. (Мессинг с ячейками, которые настроены для повторного использования, может сделать все подпункты в ячейке странными и заставить вещи накапливаться или заставить вещи, подобные кнопкам, переключаться, когда они действительно перезаряжают ячейки). Беспокойство с такими вещами при первой настройке формата вашей ячейки или после того, как ваши ячейки сделаны

0

Это, скорее всего, связано с ошибкой, которую вы сделали в Interface Builder. Я видел это, когда, например, нажата кнопка в представлении, но в следующем представлении есть некоторая проблема, например, сломанное соединение IBOutlet, когда вы копировали и вставляли некоторые объекты IB. Точка перехвата элемента приведет к 3 вызовам IBAction, а затем смерти.

Смежные вопросы