ios - UILongPressGestureRecognizer 错误

标签 ios objective-c

我已将 UILongPressGestureRecognizer 连接到 View 上的 Button。我在 Interface Builder 的 Referencing Outlet Collections 中这样做了。 当按钮被按下时,一个 Action 被触发:

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

segue 是在 Interfacebuilder 中创建的。

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

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

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

我尝试通过简单的按钮触摸来触发 segue。它可以工作,但为什么它会与 LongPress 一起崩溃。

最佳答案

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

关于ios - UILongPressGestureRecognizer 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21390543/

相关文章:

ios - 如何判断用户是按下还是完成?

objective-c - 要成为 NSDictionary 的键,类必须也实现 isEqual : and hash?

ios - 从 UITabBarController 加载 View Controller 时出现问题

ios - 如何轻松分离存储在较大 NSString 中的一组字符串?

c++ - 如何使功能仅局限于主要功能?

objective-c - 应用从应用商店返回设备 token 的空值

iphone - 仅在首次打开应用程序时打开的透明覆盖 View

ios - 使用 iOS 7 在后台获取步骤

iphone - 设置 UILabel 的背景(.png 文件的透明度问题)

ios - 状态栏下的 Swift 导航栏