我正在使用SWRevealViewController插件(https://github.com/John-Lluch/SWRevealViewController)在我的iOS应用中有类似抽屉的过渡。
我在视图中添加了一个panGestureRecognizer,允许用户拖动右侧的ViewController来隐藏左边的VC:
[self.view addGestureRecognizer: self.revealViewController.panGestureRecognizer];
现在我想检测何时拖动了正确的VC以触发动画,所以基本上我只是想找到一种方法来自动知道显示哪个VC。
到目前为止,我尝试使用以下代码将事件绑定到self.revealViewController.panGestureRecognizer:
[self.revealViewController.panGestureRecognizer addTarget:self action:@selector(PanGestureEnded:)];
然后这样做:
-(void)PanGestureEnded:(UIPanGestureRecognizer *)gesture{
if (gesture.state==UIGestureRecognizerStateEnded) {
//some code here
}
}
但我的应用程序总是崩溃,我发出了一个exc_bad_access错误。所以我启用了NSZombies并收到以下错误消息:
-[TabBarViewController PanGestureEnded:]: message sent to deallocated instance 0xc1ad890
有没有人知道如何解决这个问题?
非常感谢
答案 0 :(得分:0)
我在尝试将动作绑定到self.revealViewController.panGestureRecognizer时遇到了同样的错误。
我无法解决错误。相反,我将当前控制器设置为revealViewController的委托,并调用委托方法:
- (void)revealControllerPanGestureBegan:(SWRevealViewController *)revealController
并在上述方法中执行我的操作。
希望得到这个帮助。
答案 1 :(得分:0)
我最近遇到了同样的问题。
我能够通过将SWRevealViewController项目更新到其最新版本来解决它,而不是使用segue连接作为"显示视图控制器" (现已弃用)我正在使用"显示视图控制器推送控制器"。