2014-10-30 75 views
1

我的iOS应用在启动时通过RestKit加载数据。有时候需要时间才能在加载数据之前显示主窗口。如何在加载过程中显示启动画面,并在所有数据加载完成后显示主窗口? 我可以在加载所有数据时调用方法或生成事件。如何保持启动画面,直到iOS应用完成加载数据

回答

-6

对于您的Appdelegate.m真正简单的修复,应用didFinishLaunching方法把

sleep(3) 

在顶部,并与数量,直到您满意您的数据通常加载播放。

+0

睡在那里很可能会让你的应用程序被监管人员杀死。你必须尽快返回。 – jrturton 2014-10-30 21:21:15

4

您应该创建视图控制器与ImageView相同飞溅屏幕,并在viewDidLoad()通话

self.presentViewController(splashScreenVC, animated: false, completion: nil) 

当数据加载解雇splashScreenVC

self.dismissViewControllerAnimated(false, completion: nil) 
+1

甚至更​​好,显示加载操作的进度,因此用户不会想知道发生了什么。 UIActivityIndi​​cator或更好,实际完成%。 – XJones 2014-10-30 21:17:02

+0

使用这种方法,谢谢。只需要注意,由于每个屏幕分辨率和方向都有几个LaunchScreen图像,因此不容易创建与LaunchScreen ImageView完全相同的图像。将它与nib文件或故事板相匹配是有问题的。 – mikety 2014-11-04 00:59:18

+0

使用开关UIScreen.mainScreen()。bounds.size.height来检测它是哪个iPhone。 – ChikabuZ 2016-01-26 16:33:31

1

同意这一点,但我会更详细地回答:

- (IBAction)goDownload:(id)sender { 
    //loading simulation 
    UIViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"Splash"]; 
    [self.navigationController presentViewController:vc animated:NO completion:nil]; 

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
     //Run a background thread 
     sleep(10); 
     [self.navigationController dismissViewControllerAnimated:vc completion:nil]; 
     }); 
} 

Als o使源代码:https://yadi.sk/d/W83sU-HrcREpE

相关问题