我尝试在故事板中使用UTabBarController创建一个应用程序。
显示很好。但是,如果用户首次启动应用程序,我还想显示firstTimViewController。因此,我需要在Appdelgate中的didFinishLaunchingWithOptions上显示这个视图。
我使用了以下代码:
UIStoryboard *storyboard = window.rootViewController.self.storyboard;
StartupViewController *svc = [storyboard instantiateViewControllerWithIdentifier:@"StartupTableIdentifier"];
[self.window.rootViewController presentModalViewController:svc animated:NO];
它给了我以下错误:
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'应用程序尝试在目标上显示nil模态视图控制器。'
答案 0 :(得分:1)
您是否为应用设置了故事板?故事板的名称应该匹配。单击项目,单击目标,然后在摘要选项卡中验证主记分板名称是否与项目中.storyboard的名称相匹配。
为确保您有一个初始视图控制器,请确保选中初始视图控制器:
答案 1 :(得分:1)
为什么不只是从firstTimViewController设置的NSUserDefaults设置(在它被解除之后)并且只是在Storyboard的rootVC(第一个TabBar VC)中检查该设置。当应用程序第一次启动时,检查并查看用户是否已经看到并确认firstTimeVC,如果没有,则从TabBar VC显示它。
我会单独留下AppDelegate并在TabBar VC中执行逻辑。