以编程方式呈现不同的故事板时出错
Error when presenting different storyboard programmatically
我有一个包含 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 中执行此操作吗?
只需将代码移至viewDidAppear:
。在 viewWillAppear:
中,您的视图还不在界面中(这就是 "will" 的意思),因此没有任何内容可以呈现。
我有一个包含 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 中执行此操作吗?
只需将代码移至viewDidAppear:
。在 viewWillAppear:
中,您的视图还不在界面中(这就是 "will" 的意思),因此没有任何内容可以呈现。