0

我需要在应用程序开始时显示“加载屏幕”(只是一个图像),当应用程序从 Web 获取所有需要的数据时,会显示第一个视图控制器。我通过将自己的黑屏“Default.png”设置为“LoadingScreen.png”(当然再次命名为 Default.png)和

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.viewController = [[THWViewController alloc] initWithNibName:@"THWViewController" bundle:nil];
[self performSelector:@selector(start) withObject:nil afterDelay:5.0];
[self.window makeKeyAndVisible];
return YES;
}

- (void)start
{
self.window.rootViewController = self.viewController;
}

我会将随机延迟更改为 api 加载完成时,但这是实现它的好方法吗?因为我收到了预期 rootviewcontroller 的消息。

4

1 回答 1

0

您可能需要考虑使用一个块,以便消除随机延迟。我还会考虑从您的第一个视图中调用它,而不是从没有根目录开始(删除警告):

//show your loading screen over your first view
dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    // Get all the needed data

    dispatch_async( dispatch_get_main_queue(), ^{
        // do what you need to do with data and in first view
        //hide the loading screen
    });
});
于 2013-05-17T14:16:00.120 回答