“应用程序窗口应该在应用程序启动结束时有一个根视图控制器”在我禁用情节提要后发生

Posted

技术标签:

【中文标题】“应用程序窗口应该在应用程序启动结束时有一个根视图控制器”在我禁用情节提要后发生【英文标题】:"Application windows are expected to have a root view controller at the end of application launch" occurred after I disable storyboard 【发布时间】:2013-05-08 11:35:14 【问题描述】:

我通过将主故事板更改为空来禁用故事板。而且我已经重写了所有内容,因此我不需要故事板并且它可以正常工作。但是在控制台日志中,应用程序窗口应该在应用程序启动结束时有一个根视图控制器。 我可以忽略这条消息,他们会在提交后批准我的应用程序吗? didFinishLaunchingWithOptions:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];  
    self.tabBarController = [[AKTabBarController alloc] initWithTabBarHeight:65];
    SubscribeViewController *sub = [[SubscribeViewController alloc] initWithNibName:nil bundle:nil];
    UINavigationController *navControlelr = [[UINavigationController alloc] initWithRootViewController:sub];
    NewHomeViewController *home = [[NewHomeViewController alloc] initWithNibName:nil bundle:nil];
    UINavigationController *homeNav = [[UINavigationController alloc] initWithRootViewController:home];

    ReceivedPushViewController *receivedPush = [[ReceivedPushViewController alloc] initWithNibName:nil bundle:nil];

    MoreViewController *more = [[MoreViewController alloc] initWithNibName:nil bundle:nil];

    NSMutableArray *viewControllers = [NSMutableArray arrayWithArray:@[homeNav, navControlelr, receivedPush, more]];

    [self.tabBarController setViewControllers:viewControllers];
    [self.window setRootViewController:self.tabBarController];
    [self.window makeKeyAndVisible];

    return YES;

【问题讨论】:

重置模拟器并检查一次。 @Jyotishree 不,消息仍在显示。 【参考方案1】:

我试过你的代码,问题是你重新实例化了应用程序窗口,你不需要这样做。如果您只是删除第一行代码self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];,您的应用程序应该可以正常工作,并且警告应该会消失。

【讨论】:

你说得对,我还有一个主 nib 文件,这就是为什么我不需要分配初始化我的 self.window 我现在实际上尝试了你的设置,而 self.window 确实需要初始化,但是,您的代码可以正常工作并且没有给我任何警告(没有故事板,没有 xib 文件,全部通过代码完成)! 你是否删除了项目plist文件中的“Main storyboard file base name”属性? 能否使用storyboard创建一个项目,然后禁用storyboard并再次尝试代码?因为我想知道这是因为缺少故事板,但代码正在运行,系统无法解决这个问题。 我试过了!无论我做什么,我都不会得到那个警告!我试过: - 删除情节提要文件而不更改项目设置,留下情节提要文件并编辑项目属性以便它不会使用它,删除文件并编辑项目情节提要属性,甚至留下情节提要文件和项目属性! 我明白了。我可以忽略这条消息吗?

以上是关于“应用程序窗口应该在应用程序启动结束时有一个根视图控制器”在我禁用情节提要后发生的主要内容,如果未能解决你的问题,请参考以下文章