警告:尝试在视图不在窗口层次结构中的ViewController上显示UINavigationController

时间:2013-08-27 15:28:35

标签: ios objective-c

我正在研究ios应用程序而且我是新手。所以,我收到了这个错误。我想要做的是当用户首次在应用程序上注册时,他们的用户名使用NSUserdefault本地存储在手机上。

现在,如果他们关闭应用程序并重新打开它,应用程序将通过第一个视图控制器,并在viewdidload方法中检查USUserdefault的长度是否大于零,如果是,则通过执行segue调用进入主要活动。但是当我运行它时会出现错误。

这就是我在故事板上所做的。 enter image description here

这是firstviewcontroller中的代码

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; NSString *user = [prefs stringForKey:@"userName"];

    if(user.length>0){
        NSLog(@"Going straight to main %s", "Yes");
        [self performSegueWithIdentifier:@"startMain" sender:self];

    }
}

1 个答案:

答案 0 :(得分:3)

您所要做的就是将方法移至viewDidAppear:

-(void)viewDidAppear:(BOOL)animated {
       [super viewDidAppear:animated];
       NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; NSString *user = [prefs stringForKey:@"userName"];

       if(user.length>0){
               NSLog(@"Going straight to main %s", "Yes");
               [self performSegueWithIdentifier:@"startMain" sender:self];

       }
}