iOS 7具有出色的交互式动画,可以弹出UIViewControllers。过渡是通过从屏幕左侧滑动来触发的,但是我想通过在视图控制器中的任何位置滑动来触发过渡。 (我也想从边缘取消这些,以便可以将它们用于另一个自定义过渡...)。
到目前为止,我已经在视图控制器中将其添加到init
中。我知道这是错误的,我不确定自己在做什么。
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)];
panRecognizer.delegate = self.navigationController.interactivePopGestureRecognizer.delegate;
[self.view addGestureRecognizer:panRecognizer];
如何将其绑定到内置的InteractivePopGestureRecognizer?应该在我的
handleGesture:
方法中完成吗?编辑:在Apple's documentation中,实际上使用了扎带这个词:
InteractivePopGestureRecognizer
导航控制器将此手势识别器安装在其视图上,并使用其将最顶部的视图控制器弹出导航堆栈。您可以使用此属性来检索手势识别器,并将其与用户界面中其他手势识别器的行为相关联。将手势识别器捆绑在一起时,请确保它们同时识别其手势,以确保您的手势识别器有机会处理该事件。
您如何将UIGestureRecognizers捆绑在一起?
最佳答案
我认为该文档的意思是您可以使用该访问器来检索导航控制器的interactivePopGestureRecognizer
,以便在自己的识别器的委托回调中使用。例如,在-gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:
中,仅当otherGestureRecognizer是视图控制器的交互式弹出手势识别器时,才可能要返回YES
。
关于ios - 如何从自定义UIGestureRecognizer触发NavigationController的InteractivePopGestureRecognizer,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21049088/