Ответ 1
Прошу прощения за опоздание, но у меня точно такая же проблема. В моем случае это был UITapGestureRecognizer
, назначенный родительскому представлению. Таким образом, неплохо также проверить распознаватели.
У меня есть 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 и сохраняем. Я снова тестирую, я не получаю ответа.
С уважением, Рич
Прошу прощения за опоздание, но у меня точно такая же проблема. В моем случае это был UITapGestureRecognizer
, назначенный родительскому представлению. Таким образом, неплохо также проверить распознаватели.
Вы выпускаете newViewController.
В то время как добавление newViewController.view в качестве подчиненного объекта сохранит представление, объект newViewController будет иметь значение удержания 0.
Вы упомянули о спасении; вы сохранили файлы xib и MyViewController после внесения изменений? Часто, когда что-то вроде этого перестает работать для меня, я считаю, что я не сохранил ни xib в IB, ни файл класса в XCode.
Есть ли у вас обработчики сенсорных событий, реализованные в ваш код MyViewController?
Похоже, ваш UIButton получает только прикосновенияBegan событие, и событие отменяется чем-то раньше он может получить touchs.Ended.
Что-то вроде UIScrollView обычно делает, когда это выбор между касанием, которое необходимо переслать на это подвид и перетаскивание, которые должны обрабатываться сам по себе.
Lol хорошо это было глупое решение, но в xib я связал его с buttonTouchUp снаружи, и это вызвало проблему. Может быть, это поможет:)