Ios5 在ipad应用程序启动时显示模式视图

Ios5 在ipad应用程序启动时显示模式视图,ios5,uiapplicationdelegate,presentmodalviewcontroller,uistoryboard,Ios5,Uiapplicationdelegate,Presentmodalviewcontroller,Uistoryboard,我想在ipad应用程序启动时有条件地显示登录屏幕。我不想让它成为默认segue的一部分,因为他们只需要定期登录,而不是每次登录 我的问题有很多,但它们似乎都早于ios5。然而,当我使用故事板时,似乎什么都不起作用 要把这归结为本质,, *使用情节提要创建新的单视图应用程序 *将新的viewcontroller添加到情节提要,为其指定一个标识符“loginScreen” *在每个视图上放置一个文本标签,以便在视觉上区分它们。 *在appDelegate中: - (BOOL)application:

我想在ipad应用程序启动时有条件地显示登录屏幕。我不想让它成为默认segue的一部分,因为他们只需要定期登录,而不是每次登录

我的问题有很多,但它们似乎都早于ios5。然而,当我使用故事板时,似乎什么都不起作用

要把这归结为本质,, *使用情节提要创建新的单视图应用程序 *将新的viewcontroller添加到情节提要,为其指定一个标识符“loginScreen” *在每个视图上放置一个文本标签,以便在视觉上区分它们。 *在appDelegate中:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UIStoryboard *storyboard = [self.window.rootViewController storyboard];
    UIViewController *loginController = [storyboard instantiateViewControllerWithIdentifier:@"loginScreen"];
    [self.window.rootViewController presentModalViewController:loginController animated:TRUE];

    return YES;
}
从我所看到的例子来看,这应该是可行的。但它仍然一致地显示原始rootViewController的视图。但是没有错误


有人能指出我遗漏的(可能很小的)东西吗?

结果是,应用程序在
didfishLaunching
方法中没有处于活动状态

放这个的合适位置是

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    UIStoryboard *storyboard = self.window.rootViewController.storyboard;
    UIViewController *loginController = [storyboard instantiateViewControllerWithIdentifier:@"loginScreen"];
    [self.window.rootViewController presentModalViewController:loginController animated:NO];
}

@deafgreatdane:每当应用程序从后台状态变为活动状态时(这可能是需要的),您的解决方案都会以模态方式呈现视图控制器

在我的情况下(使用此选项显示一次性启动屏幕),我将向该解决方案添加一次
dispatch\u
,以确保模式启动屏幕只显示一次:

- (void)applicationDidBecomeActive:(UIApplication*)application
{
   static dispatch_once_t onceToken;

   dispatch_once( &onceToken, ^
                 {
                    SomeLaunchViewController* launchViewController = [[SomeLaunchViewController alloc] init];
                    [self.window.rootViewController presentViewController:launchViewController animated:NO completion:NULL];
                 } );
}
此代码段使用ARC