我有一个带2个故事板的应用程序。其中一个是主要应用程序的东西,另一个是设置用户配置文件的设置故事板。现在,我已将其设置为主界面为Setup.storyboard
。在该故事板的第一个视图控制器中,在-viewWillAppear:animated
方法中,它会检查NSUserDefault
以查看设置是否完整。如果是,我执行此代码。
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"userHasCompletedSetup"]) {
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
SWRevealViewController *vc = [sb instantiateViewControllerWithIdentifier:@"initialVC"];
[self presentViewController:vc animated:YES completion:NULL];
}
}
我收到错误Warning: Attempt to present <SWRevealViewController: 0x7ff20a595220> on <MPOSetupOneViewController: 0x7ff20a720b80> whose view is not in the window hierarchy!
(我在我的应用中使用SWRevealViewController
作为菜单。)
我收到此错误,视图控制器无法切换。有什么办法可以根据NSUserDefault
切换故事板吗?我可以在AppDelegate中这样做吗?
答案 0 :(得分:1)
只需将代码移至viewDidAppear:
即可。在viewWillAppear:
中,您的视图尚未出现在界面中(即&#34;将&#34;表示),因此无法呈现。