我已将UILongPressGestureRecognizer连接到视图上的Button。我是在Interface Builder中的Referencing Outlet Collections中完成的。 按下按钮时会触发一个动作:
- (IBAction)longPressed:(UILongPressGestureRecognizer *)sender {
[self performSegueWithIdentifier:@"nextView" sender:self];
}
segue是在Interfacebuilder中创建的。
推送下一个ViewController(我使用NavigationController)并显示正确。 但现在我收到此错误消息:
“嵌套推送动画可能导致导航栏损坏” “在意外状态下完成导航转换。导航栏子视图树可能已损坏。” “对开始/结束外观转换的不平衡调用。”
当我按下后退按钮时,应用程序崩溃。
我尝试用简单的按键触摸来触发segue。它有效,但为什么它会与LongPress崩溃。
答案 0 :(得分:2)
使用不同的状态多次调用logPressed。您需要在其中添加代码才能触发其中一个州的事件。
用你想接受的任何状态输入类似的代码。
- (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