从AppDelegate呈现View Controller

时间:2012-02-28 18:04:25

标签: ios xcode4.2 storyboard

我尝试在故事板中使用UTabBarController创建一个应用程序。

显示很好。但是,如果用户首次启动应用程序,我还想显示firstTimViewController。因此,我需要在Appdelgate中的didFinishLaunchingWithOptions上显示这个视图。

我使用了以下代码:

UIStoryboard *storyboard = window.rootViewController.self.storyboard;
    StartupViewController *svc = [storyboard instantiateViewControllerWithIdentifier:@"StartupTableIdentifier"];
    [self.window.rootViewController presentModalViewController:svc animated:NO];

它给了我以下错误:

由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'应用程序尝试在目标上显示nil模态视图控制器。'

2 个答案:

答案 0 :(得分:1)

您是否为应用设置了故事板?故事板的名称应该匹配。单击项目,单击目标,然后在摘要选项卡中验证主记分板名称是否与项目中.storyboard的名称相匹配。

为确保您有一个初始视图控制器,请确保选中初始视图控制器:

enter image description here

答案 1 :(得分:1)

为什么不只是从firstTimViewController设置的NSUserDefaults设置(在它被解除之后)并且只是在Storyboard的rootVC(第一个TabBar VC)中检查该设置。当应用程序第一次启动时,检查并查看用户是否已经看到并确认firstTimeVC,如果没有,则从TabBar VC显示它。

我会单独留下AppDelegate并在TabBar VC中执行逻辑。