iOS应用程序启动图像后杀死

Dat*_*ies 7 iphone objective-c ios7 xcode5

当我杀死我的iPhone应用程序并重新启动它时,我有一个应用程序的先前状态的图像而不是启动图像.如何强制iOS始终显示启动图像?

Mat*_*att 7

要强制iOS使用其默认图像启动应用程序,请调用[[UIApplication sharedApplication] ignoreSnapshotOnNextApplicationLaunch];实施状态保留的位置.

文档:

当您的应用重新启动时,系统会显示此快照图像以代替您应用的默认启动图像,以保留您的应用仍在运行的概念.如果您认为在重新启动应用程序时快照无法正确反映应用程序的用户界面,则可以调用此方法以防止拍摄快照图像.如果您这样做,UIKit会使用您应用的默认启动图像.

另请查看此问题以获取更多详细信息.


小智 5

如果在状态恢复期间未调用应用程序,则不会调用ignoreSnapshotOnNextApplicationLaunch方法.

如果您的应用不支持多任务功能,其Info.plist中的UIApplicationExitsOnSuspend键设置为YES.建议的解决方案不起作用.

对我来说,我使用下面的代码:

applicationWillResignActive用于应用程序运行时的情况,双击主页按钮调用多任务托盘.启动画面将显示在应用程序屏幕上.它完美地运作.

applicationWillTerminate每次都不起作用,因为在某些阶段永远不会调用该函数

- (void)applicationWillResignActive:(UIApplication *)application {

    NSLog(@"Application Did Resign Active");
    self.viewController.webView.hidden = YES;

    NSString *splashImage;
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        splashImage = @"Default-Portrait~ipad.png";
    }
    else {
        splashImage = @"Default~iphone.png";
    }

    UIImageView *splash = [[UIImageView alloc]initWithFrame:[self.window frame]];
    [splash setImage:[UIImage imageNamed:splashImage]];
    [self.window addSubview:splash];

}

- (void)applicationWillTerminate:(UIApplication *)application {

    NSLog(@"Application is Terminated");
    self.viewController.webView.hidden = YES;

    NSString *splashImage;
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        splashImage = @"Default-Portrait~ipad.png";
    }
    else {
        splashImage = @"Default~iphone.png";
    }

    UIImageView *splash = [[UIImageView alloc]initWithFrame:[self.window frame]];
    [splash setImage:[UIImage imageNamed:splashImage]];
    [self.window addSubview:splash];

}
Run Code Online (Sandbox Code Playgroud)