2

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

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

非常感谢

4

2 回答 2

0

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

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

于 2014-08-16T05:36:57.627 回答
0

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

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

- (void)revealControllerPanGestureBegan:(SWRevealViewController *)revealController

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

希望这有帮助。

于 2013-11-01T15:11:44.570 回答