不是第一次查看时,iOS添加菜单导致崩溃

我正在使用故事板来切换视图。 很简单,直到我尝试添加ECSlidingViewController。

如果我将上面的幻灯片菜单添加到我使用这个调用的第一个视图:

self.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Main"]; 

如果我将@“Main”设置为@“Speakers”,则视图加载得很好。 我得到了滑动菜单和一切。 @“主”也加载得很好。

但是,如果我像上面的代码一样首先加载@“Main”,然后将视图切换到我指定的“Speakers”,那么一旦我尝试用此代码调用滑动菜单,就会崩溃。

  if(![self.slidingViewController.underLeftViewController isKindOfClass:[MenuViewController class]]) { self.slidingViewController.underLeftViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"]; } [self.view addGestureRecognizer:self.slidingViewController.panGesture]; 

我得到一个崩溃说明: *终止应用程序由于未捕获的exception'NSInvalidArgumentException',原因:'* – [__ NSArrayM insertObject:atIndex:]:对象不能为零'

我尝试了很多方法来切换视图。

我试过了:

 SpeakersView *second= [self.storyboard instantiateViewControllerWithIdentifier:@"Speakers"]; [self presentViewController:second animated:YES completion:nil]; 

我试过了:

  SpeakersView *svc = [self.storyboard instantiateViewControllerWithIdentifier:@"Speakers"]; [self presentViewController:svc animated:YES completion:nil]; 

如果我不调用幻灯片菜单,每个人工作得很好,但是当我添加幻灯片手势时,每个都会导致崩溃。

想法?

好吧,我明白了。 经过漫长而艰辛的经历,我明白了。

所以我有很多文件(每个.m和.h):

InitViewController

MenuViewController

MainViewController

SpeakersView

目标是使用不在幻灯片菜单上的button从MainViewController切换到SpeakersView,但直接导致幻灯片菜单为空,正如Phillip Mills指出的那样。

相反,我把它放在InitViewController.h中,就在@Interface的下面:

 @property (nonatomic, retain) NSString *location; 

然后这在InitViewController.m中的@implementation下:

 @synthesize location; 

我原来在InitViewController.m中的ViewDidLoad下:

 self.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Main"]; 

我改变了这个:

 if([location length] == 0){location = @"Main";} self.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:location]; 

这样如果variables是空的,它默认为@“Main”。

然后在MainView.m中,按下button后执行代码,我有这样的:

 InitViewController *ini; ini = [self.storyboard instantiateViewControllerWithIdentifier:@"Init"]; ini.location = @"Speakers"; 

瞧,视图切换到Speakers。 更准确地说,它切换到InitViewController自动切换到扬声器或任何我设置的位置。

感谢大家的帮助。