UIButton TouchUpInside действие запускается несколько раз за клик - PullRequest
2 голосов
/ 06 августа 2009

У меня есть три кнопки, настроенные в Интерфейсном Разработчике, каждая из которых связана через touchUpInside с btnSelection:

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

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

Touch # 1 (btn w / tag = 0):

бирка: 0

Touch # 2 (btn w / tag = 1):

Тег: 0 тег: 1

Нажмите # 3 (btn w / tag = 2):

бирка: 1 тег: 2

и т. Д.

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

Ответы [ 4 ]

3 голосов
/ 07 августа 2009

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

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

1 голос
/ 23 декабря 2010

Установите точку останова в вашем обратном вызове и посмотрите, откуда поступает звонок. То, что вы описываете, прекрасно работает в сотнях из тысяч приложений - вы называете свою рутину двукратной, как-то.

(Не обижайся, но это твой код.:)

0 голосов
/ 14 июля 2013

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

0 голосов
/ 07 мая 2013

Я знаю, что это не было включено в вопрос, но в случае, если у вас может быть uibutton в пользовательской ячейке uitableview, убедитесь, что не перепутали настройки выбора при настройке ваших ячеек для повторного использования. (Из-за того, что ячейки настроены для повторного использования, все подпредставления в ячейке становятся странными и могут накапливаться вещи, например, если кнопки действительно переключаются, когда они действительно перезагружают ячейки). или после того, как ваши клетки сделаны

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...