SWRevealViewController 滑动手势导致应用程序崩溃

SWRevealViewController swipe gesture causes app to crash

我有一个实现 SWRevealViewController 的应用程序,但我遇到了一些问题。

我有两个问题,我猜它们可能是相互关联的(我不确定,因为我对此很陌生)。

如果我在从 SWRevealController class 呈现的视图控制器上,我通过当前模态转场转到另一个视图控制器,然后也通过当前模态转场返回到前一个视图控制器然后应用程序崩溃,这只发生在为 SWRevealController class 实现滑动手势识别器的视图控制器上,所以对于目前发生这种情况的所有视图控制器,我已经注释掉了手势识别器并添加了一个条形按钮项目进入导航栏,并通过 SWRevealController class 显示菜单。我用于 SWRevealController 功能的所有代码都来自 AppCoda 上的 SWRevealController 教程,我在实现 class (http://www.appcoda.com/ios-programming-sidebar-navigation-menu/).

时遵循了该教程

就是这样(还导入了 SWRevealViewController 的正确 class 文件):

barButton.target = self.revealViewController;
barButton.action = @selector(revealToggle:);
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];

条形按钮项目在点击时没有显示任何错误,它只是不执行任何操作。如果视图控制器具有手势识别器,则应用程序会崩溃并出现此错误:

* 由于未捕获的异常 'NSInvalidArgumentException' 而终止应用程序,原因:'* -[__NSArrayM insertObject:atIndex:]: 对象不能零'


None 我在视图控制器上编写的代码中发生这种情况的代码中有任何数组,所以我看不出我的代码怎么可能有问题,但正如我之前所说,我对此我很陌生,所以我不确定。

如果我不转到另一个视图控制器然后再返回,滑动手势和栏按钮项目都可以工作。

问题很可能源于您问题中的陈述:

...I go to another view controller via a present modally segue and then back to the previous view controller also via a present modally segue...

您不会通过模态显示返回到以前的控制器,而是您需要关闭您当前的模态。