Подтвердить что ты не робот

Событие UIButton "Touch Up Inside" не работает. "Touch Down" отлично работает

У меня есть UIButton в UIView, который находится в UIViewController, который я выделил и запустил из файла .xib.

При подключении IBAction до события "Touch Down" UIButton он запускается правильно. Но если я подключу его к событию "Touch Up Inside", он не отвечает.

Другие события также не работают. 'Touch Drag Enter', 'Touch Drag Exit', 'Touch Up Out' и т.д. Только Touch Down.

Кто-нибудь может понять, почему это может быть?


Кнопка представляет собой простую кнопку закругленного прямоугольника в контроллере вида. Я загрузил контроллер вида как таковой:

-(void) pushNewViewController
{
    MyViewController* newViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
    [self.view addSubview:newViewController.view];
    [newViewController release];
}

Я добавил эту кнопку, чтобы закруглить прямоугольную кнопку в MyViewController, в IB. Я создал следующие IBActions:

-(IBAction) buttonTouchDown:(id)sender
{
    NSLog(@"Button Touch Down Event Fired.");
}

-(IBAction) buttonTouchUpInside:(id)sender
{
    NSLog(@"Button Touch Up Inside Event Fired.");
}

В меню IB я нажал на кнопку и перетащил выход Touch Down в MyViewController и выбрал buttonTouchDown:. Сохранено IB xib.

Когда я запускаю и тестирую кнопку и получаю сообщение журнала "Button Touch Down Event".

Но когда я возвращаюсь к IB и меняю действие на Touch Up Inside и подключаю его к кнопкеTouchUpInside: IBAction и сохраняем. Я снова тестирую, я не получаю ответа.

С уважением, Рич

4b9b3361

Ответ 1

Прошу прощения за опоздание, но у меня точно такая же проблема. В моем случае это был UITapGestureRecognizer, назначенный родительскому представлению. Таким образом, неплохо также проверить распознаватели.

Ответ 2

Вы выпускаете newViewController.

В то время как добавление newViewController.view в качестве подчиненного объекта сохранит представление, объект newViewController будет иметь значение удержания 0.

Ответ 3

Вы упомянули о спасении; вы сохранили файлы xib и MyViewController после внесения изменений? Часто, когда что-то вроде этого перестает работать для меня, я считаю, что я не сохранил ни xib в IB, ни файл класса в XCode.

Ответ 4

Есть ли у вас обработчики сенсорных событий, реализованные в ваш код MyViewController?

Похоже, ваш UIButton получает только прикосновенияBegan событие, и событие отменяется чем-то раньше он может получить touchs.Ended.

Что-то вроде UIScrollView обычно делает, когда это выбор между касанием, которое необходимо переслать на это подвид и перетаскивание, которые должны обрабатываться сам по себе.

Ответ 5

Lol хорошо это было глупое решение, но в xib я связал его с buttonTouchUp снаружи, и это вызвало проблему. Может быть, это поможет:)