首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS8窗口层次结构

iOS8窗口层次结构
EN

Stack Overflow用户
提问于 2014-09-23 14:59:13
回答 1查看 218关注 0票数 1

我目前对此错误消息有一个问题,它将只在应用程序中出现一次。

代码语言:javascript
复制
Attempt to present <NavViewController: 0x1457c370> on <InitalStartupViewController: 0x145371a0> whose view is not in the window hierarchy!

应用程序功能的方式是,它只要求用户登录一次(除非卸载该应用程序),然后每次用户被定向到以下视图控制器(这也会在用户登录后发生)。这是用户登录后显示的唯一错误消息。

用户在登录后被定向到的ViewController是由以下人员直接指示的:

代码语言:javascript
复制
 [self performSegueWithIdentifier:@"alreadyRegistered" sender:self];

我已经看到,我应该解雇以前的视图控制器,但我没有成功地阻止这条消息。

在这种情况下,我应该做一些不同的事情,在第一次登录或之后每次登录后移到最终的ViewController。

EN

回答 1

Stack Overflow用户

发布于 2014-09-23 15:40:33

假设您正在使用情节提要,您可以在viewDidLoad中为authenticationViewController设置一个条件,如下所示;

代码语言:javascript
复制
  - (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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25998387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档