【发布时间】:2014-11-20 09:02:30
【问题描述】:
我是故事板的新开发者。我尝试制作带有滑出菜单的应用程序。 为此,我使用库:SWRevealViewController 和教程:http://www.appcoda.com/ios-programming-sidebar-navigation-menu/。
我按照教程进行操作,但我加载了应用程序,但出现此错误:
由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因:'*** -[__NSArrayM insertObject:atIndex:]: 对象不能为 nil'
我的应用程序在此行崩溃:
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
如何设置 self.revealViewController ?
这里是我的故事板更新:
为了了解我的应用,startviewController 用于下载和存储数据,下载后显示 mainViewcontroller。
我想要我的主视图控制器上的滑出菜单,但我不能不这样做。
这里是我添加到我的 mainviewController viewdidload 的代码:
- (void)viewDidLoad
{
[super viewDidLoad];
self.contentView.autoresizesSubviews = YES;
_sharedUser = [User sharedUser];
///slide out menu
// Change button color
//SWRevealViewController *revealViewController = [self.navigationController.storyboard instantiateViewControllerWithIdentifier:@"RevealViewController"];
_sidebarButton.tintColor = [UIColor redColor];
// Set the side bar button action. When it's tapped, it'll show up the sidebar.
_sidebarButton.target = self.revealViewController;
_sidebarButton.action = @selector(revealToggle:);
// Set the gesture
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
//end slide out
self.contentView.backgroundColor = [UIColor cyanColor];
if (_sharedUser.tokenString) {
}
else{
[self showHomeWithoutLogginView];
}
}
【问题讨论】:
-
prepareForSegue 方法的代码在哪里?放松心情后与教程交叉检查,因为该教程是正确的:)
-
为您的 tableView 数据源添加代码行。代码中的一些 NSMutable 数组试图添加对象,但它是 nil。
-
在“在导航菜单中添加菜单项”部分之前,教程中没有任何关于 prepareForSegue 方法的内容,能告诉我我需要写什么以及在哪里写吗? @Mayo323 错误来自 self.revealViewController 谁是零。我的 tableView 可以在没有数据的情况下显示。
-
你完成了整个教程还是只完成了一部分?
-
我没有完成它,我在“在导航菜单中添加菜单项”之前停止了。但它应该在理论上有效吗?
标签: ios objective-c menu xcode6 swrevealviewcontroller