【发布时间】:2017-06-26 08:05:02
【问题描述】:
我将 SWRevealViewController 用于 Slide Out Menu 的应用程序,其中 滑出菜单仅从主屏幕开始 在注册页面中按下注册按钮后(即第一次运行应用程序)。
当应用程序第二次运行时,它应该直接进入主屏幕,但应用程序正在崩溃,并且我在 ViewController 中得到崩溃日志。
_barBtnMenu.target = self.revealViewController;
_barBtnMenu.action = @selector(revealToggle:);
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
NSInvalidArgumentException',原因:'-[__NSArrayM insertObject:atIndex:]: 对象不能为 nil。
对于应用程序的第一次运行,我使用“注册”按钮中的 Present Modally Segue。
在SWRevealViewController
中- (SWRevealViewController*)revealViewController
{
UIViewController *parent = self;
Class revealClass = [SWRevealViewController class];
while ( nil != (parent = [parent parentViewController]) && ![parent isKindOfClass:revealClass] ) {}
return (id)parent;
}
第一次运行时 parent 正在返回一个值,但第二次运行它返回 nil
如果有人可以帮助我解决问题。 提前致谢。
编辑
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSString *savedValue = [[NSUserDefaults standardUserDefaults]
stringForKey:@"email"];
if (savedValue != nil) {
UIStoryboard *storyboard = self.window.rootViewController.storyboard;
ViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"viewController"];
self.window.rootViewController =viewController;
[self.window makeKeyAndVisible];
} else {
NSLog(@"Sign Up screen opened");
}
return YES;
}
【问题讨论】:
-
请分享您的源代码。
-
你是如何实例化 SWRevealViewController 的?来自情节提要还是来自您的代码?
-
我的解决方法不同,但感谢您的回复..
-
你的方法应该可行,但不是理想的解决方案。
标签: ios objective-c swrevealviewcontroller