SWRevealViewController - 知道显示哪个ViewController

时间:2013-10-07 18:02:55

标签: iphone ios uigesturerecognizer exc-bad-access uipangesturerecognizer

我正在使用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

有没有人知道如何解决这个问题?

非常感谢

2 个答案:

答案 0 :(得分:0)

我在尝试将动作绑定到self.revealViewController.panGestureRecognizer时遇到了同样的错误。

我无法解决错误。相反,我将当前控制器设置为revealViewController的委托,并调用委托方法:

- (void)revealControllerPanGestureBegan:(SWRevealViewController *)revealController

并在上述方法中执行我的操作。

希望得到这个帮助。

答案 1 :(得分:0)

我最近遇到了同样的问题。

我能够通过将SWRevealViewController项目更新到其最新版本来解决它,而不是使用segue连接作为"显示视图控制器" (现已弃用)我正在使用"显示视图控制器推送控制器"。

相关问题