我目前对此错误消息有一个问题,它将只在应用程序中出现一次。
Attempt to present <NavViewController: 0x1457c370> on <InitalStartupViewController: 0x145371a0> whose view is not in the window hierarchy!应用程序功能的方式是,它只要求用户登录一次(除非卸载该应用程序),然后每次用户被定向到以下视图控制器(这也会在用户登录后发生)。这是用户登录后显示的唯一错误消息。
用户在登录后被定向到的ViewController是由以下人员直接指示的:
[self performSegueWithIdentifier:@"alreadyRegistered" sender:self];我已经看到,我应该解雇以前的视图控制器,但我没有成功地阻止这条消息。
在这种情况下,我应该做一些不同的事情,在第一次登录或之后每次登录后移到最终的ViewController。
发布于 2014-09-23 15:40:33
假设您正在使用情节提要,您可以在viewDidLoad中为authenticationViewController设置一个条件,如下所示;
- (void)viewDidLoad{
[super viewDidLoad];
// validate authentication viewController being displayed
if(dontDisplayauthenticationController){
UIStoryboard *storyBoard = self.storyboard;
UIViewController *targetViewController = [storyBoard instantiateViewControllerWithIdentifier:@"alreadyRegistered"];
UINavigationController *navController = self.navigationController;
if (navController) {
[navController pushViewController:targetViewController animated:NO];
} else {
[self presentViewController:targetViewController animated:NO completion:nil];
}
}
}身份验证过程保持不变,即在身份验证之后仍然调用performSegueWithIdentifier
https://stackoverflow.com/questions/25998387
复制相似问题