Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 首次运行时未显示Viewcontroller_Ios_Objective C_Uiviewcontroller - Fatal编程技术网

Ios 首次运行时未显示Viewcontroller

Ios 首次运行时未显示Viewcontroller,ios,objective-c,uiviewcontroller,Ios,Objective C,Uiviewcontroller,我试图让视图控制器在第一次运行时显示InitialViewController,并且仅在第一次运行时显示。但是,它会与此消息一起出现: 警告:尝试显示其视图不在窗口层次结构中的对象 那我的代码怎么了 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; BOOL hasRunBefore = [defaults boolForKey:@"FirstRun"]; if (!hasRunBefore) { [de

我试图让视图控制器在第一次运行时显示
InitialViewController
,并且仅在第一次运行时显示。但是,它会与此消息一起出现:

警告:尝试显示其视图不在窗口层次结构中的对象

那我的代码怎么了

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
BOOL hasRunBefore = [defaults boolForKey:@"FirstRun"];

if (!hasRunBefore) {
    [defaults setBool:YES forKey:@"FirstRun"];
    [defaults synchronize];
    UIViewController * InitialViewViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"view2"];
    [self presentViewController:InitialViewViewController animated:YES completion:NULL];
}

else
{
    NSLog (@"Not the first time this controller has been loaded");



}

你需要一个钥匙窗。通常,您的代码中有
[WindowMakeKeyandVisible]。这构成了windows层次结构

您正在运行的代码在哪里?它应该在应用程序的第一个显示的ViewController中。我应该把它放在哪里?通常在应用程序中:使用AppDelegate的选项完成启动。我来看看。不管它是否有效,我都会给你回电