【问题标题】:UILongPressGestureRecognizer ErrorUILongPressGestureRecognizer 错误
【发布时间】:2014-01-27 20:05:02
【问题描述】:

我已将 UILongPressGestureRecognizer 连接到视图上的按钮。我在 Interface Builder 中的引用插座集合中执行了此操作。 当按钮被按下时,会触发一个动作:

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

segue 是在 Interfacebuilder 中创建的。

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

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

当我按下返回按钮时,应用程序崩溃。

我尝试通过简单的 Button 触摸来触发 segue。它可以工作,但是为什么它会随着 LongPress 崩溃。

【问题讨论】:

    标签: ios objective-c


    【解决方案1】:

    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

    【讨论】:

    • 如果完全解决问题,您可以接受。
    猜你喜欢
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多