2014-01-27 4 views
0

Я подключил UILongPressGestureRecognizer к моей кнопке на представлении. Я сделал это в сборках реферирующих выпусков в интерфейсе Builder. Когда кнопка получает нажал Действие срабатывает:UILongPressGestureRecognizer Error

- (IBAction)longPressed:(UILongPressGestureRecognizer *)sender { 
    [self performSegueWithIdentifier:@"nextView" sender:self]; 
} 

Segue был создан в InterfaceBuilder.

Следующий ViewController нажат (я использую NavigationController) и отображается правильно. Но теперь я получаю это сообщение об ошибке: «Завершение навигации перехода в неожиданном состоянии панель навигации подтаблица дерево может быть поврежден.»

«вложенная толчок анимация может привести к повреждению панели навигации» «Неуравновешенные вызовы для перехода к началу/концу».

Когда я нажимаю кнопку «Назад», приложение отключается.

Я попытался вызвать сегу простым касанием кнопки. Он работает, но почему он падает с помощью LongPress.

ответ

2

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

Read up on this answer.

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

- (void)handleLongPress:(UILongPressGestureRecognizer*)sender { 
    if (sender.state == UIGestureRecognizerStateEnded) { 
     NSLog(@"UIGestureRecognizerStateEnded"); 
    //Do Whatever You want on End of Gesture 
    } 
    else if (sender.state == UIGestureRecognizerStateBegan){ 
     NSLog(@"UIGestureRecognizerStateBegan."); 
    //Do Whatever You want on Began of Gesture 
    } 
    } 

Я хотел бы предложить это состояние: UIGestureRecognizerStateRecognized

+0

Спасибо вам это решить мою проблему. – user2415476

+0

Вы можете принять ответ, если он полностью решил вопрос. – Putz1103

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