我有一个实现SWRevealViewController的应用程序,我遇到了一些问题。
我猜两个问题可能与彼此有关(我不确定,因为我对此很新)。
如果我在SWRevealController类中呈现的视图控制器上,我通过当前模态segue转到另一个视图控制器,然后通过当前模态segue返回到前一个视图控制器,然后应用程序崩溃,这仅在实现SWRevealController类的滑动手势识别器的视图控制器上发生,因此对于目前发生这种情况的所有视图控制器,我已经注释掉手势识别器并且已将条形按钮项添加到导航栏中并使其呈现菜单通过SWRevealController类。我用于SWRevealController功能的所有代码都来自AppCoda上的SWRevealController教程,我在实现类(http://www.appcoda.com/ios-programming-sidebar-navigation-menu/)时遵循了该教程。
就是这样(SWRevealViewController的正确类文件也被导入):
barButton.target = self.revealViewController;
barButton.action = @selector(revealToggle:);
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
条形按钮项目在点击时没有显示错误,它只是没有做任何事情。如果视图控制器具有手势识别器,则应用程序崩溃并显示以下错误:
*由于未捕获的异常终止应用&#39; NSInvalidArgumentException&#39;,原因:&#39; * - [__ NSArrayM insertObject:atIndex:]:对象不能为零&#39; < / p>
我在视图控制器上编写的代码中没有任何代码都有任何阵列,所以我无法看到它如何成为我的代码的问题,但正如我之前所说的那样我很陌生,所以我不确定。
如果我没有转到另一个视图控制器然后再返回,滑动手势和条形按钮项都可以工作。
答案 0 :(得分:1)
问题很可能源于你问题中的陈述:
...我通过一个现在的模态segue转到另一个视图控制器,然后通过一个现有的模态segue返回到前一个视图控制器......
你不能通过模态呈现回到以前的控制器,而是需要解雇你当前的模态。