【问题标题】:SWRevealViewController - know which ViewController is displayedSWRevealViewController - 知道显示哪个 ViewController
【发布时间】:2013-10-14 10:09:24
【问题描述】:

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

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

非常感谢

【问题讨论】:

  • 有人帮我解决这个问题吗?

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


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    - (void)revealControllerPanGestureBegan:(SWRevealViewController *)revealController
    

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

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2015-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-05
      • 1970-01-01
      • 1970-01-01
      • 2016-03-03
      相关资源
      最近更新 更多