UILongPressGestureRecognizer错误

时间:2014-01-27 20:05:02

标签: ios objective-c

我已将UILongPressGestureRecognizer连接到视图上的Button。我是在Interface Builder中的Referencing Outlet Collections中完成的。 按下按钮时会触发一个动作:

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

segue是在Interfacebuilder中创建的。

推送下一个ViewController(我使用NavigationController)并显示正确。 但现在我收到此错误消息:

“嵌套推送动画可能导致导航栏损坏” “在意外状态下完成导航转换。导航栏子视图树可能已损坏。” “对开始/结束外观转换的不平衡调用。”

当我按下后退按钮时,应用程序崩溃。

我尝试用简单的按键触摸来触发segue。它有效,但为什么它会与LongPress崩溃。

1 个答案:

答案 0 :(得分: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