我做错了什么,但不确定它是什么。贝娄是我的storyboard
。
/----(push)----login \
Start nav ctrl mainview nav ctrl
\----(modal) register /
当用户登录时,appdelegate
logindone会收到一个事件,在登录完成后我会这样做:
self.window.rootViewController = [self.window.rootViewController.storyboard instantiateViewControllerWithIdentifier:@"MainView"];
这很好用。
但是,如果用户通过注册并使用登录完成注册,则会触发相同的loginDone,但上面的代码会导致空白view
。
如果我用
替换上面的代码UIStoryboard* storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
MainCtrl *mainViewController = (MainCtrl*)[storyBoard instantiateViewControllerWithIdentifier: @"MainView"];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:mainViewController];
self.window.rootViewController =navigationController;
这几乎可以正常工作,视图显示正确,唯一的问题是导航栏是空白的,无论我走到哪里都会保持空白。重启应用程序当然是因为它绕过了寄存器控制器。
在寄存器中我在调用loginDone之前执行[self dismissViewControllerAnimated:NO completion:nil];
,但这确实没有区别。
有什么建议吗?
修改
self.window.rootViewController = [self.window.rootViewController.storyboard
instantiateViewControllerWithIdentifier:@"MainView"];
是唯一能在正常流程中工作的东西,即登录后。否则我会崩溃“不可用的segue”。
答案 0 :(得分:0)
我修复它的方式并不完全是我想修复它的方式,但它有效。我不得不修改用于处理登录完成工作的登录完成功能,并转换到主视图,将参数传递给转换。返回时,我从注册视图触发segue到主视图。仍然不确定为什么它不按原来的方式工作。