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