启动屏幕延迟适用于iOS模拟器,但不适用于设备

时间:2012-01-31 05:31:40

标签: objective-c xcode xcode4 splash-screen

我已将启动屏幕设置为仅使用睡眠下面的代码显示1秒钟(1);在app delegate中,但是当直接在设备上测试时,我必须等待整整5秒。

每次使用iPhone或iPad运行测试时,我都需要等待整个5秒的默认值才能加载应用程序,但是,它在模拟器中运行良好。

如果我拔下iPhone线,则sleep()功能可以在设备上运行。 xCode中有设置吗?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
       sleep(1);

...

}

2 个答案:

答案 0 :(得分:1)

为了延迟启动屏幕,这不是推荐的方法。这只会延误整个过程。

我建议你在项目的最开头添加一个新的viewController,它将在启动屏幕后立即显示,UIImageView包含与启动图像完全相同的图像。

然后在切换到原始第一个屏幕之前从那里添加延迟。这样,您甚至可以为启动图像添加新的不同类型的过渡。

#import "OrginalController.h"

- (void) gotoOrginalFirstScreen
{
        // This function will take you to your oringinal first screen
        // from the temporary screen with the launch image
        OrginalController *controller = [[OrginalController alloc] initWithNibName:@"OrginalController" bundle:nil];
        controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
        [self presentViewController:controller animated:YES completion:nil];
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    // add this line to call the transition and the delay
    [self performSelector:@"gotoOrginalFirstScreen" withObject:nil afterDelay:1.0];

}

答案 1 :(得分:1)

您可以显示启动屏幕而无需让它自己进入睡眠状态。您也不需要单独的视图控制器。这种方法可以在任何地方使用,也不会麻烦你。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{
 imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"splashscreen.png"]];
imageView.frame = CGRectMake(0, 0, 324, 480);
[window addSubview:imageView];
[self.window makeKeyAndVisible];

[self performSelector:@selector(firstscreen) withObject:nil afterDelay:1.0];
return YES;     
}


-(void)firstscreen
{
        // Load some View

}

这可以将它放在您的应用程序委托中,这将显示您的启动图像1秒,然后将加载下一个屏幕。