我有一个iphone应用程序,其中一个视图需要从各种互联网站点获取大量数据。因此,加载所需的时间是不可接受的。我想知道在'applicationDidFinishLaunching'方法中是否有任何方法加载视图,因此延迟是在应用程序启动时而不是在导航中途。
非常感谢!
答案 0 :(得分:1)
您希望尽快加载视图,然后启动后台线程或异步请求以提取数据。
不建议在初始加载期间使应用程序休眠。我相信SpringBoard将终止任何需要超过30秒才能完成加载的应用程序。
让用户做一些没有可见反馈的用户体验(例如动画UIActivityView)是一种糟糕的用户体验
答案 1 :(得分:0)
您是否考虑过异步加载数据?在加载时,UI不会被阻止。例如,当您的应用加载数据时,您可以显示一个漂亮的加载轮。这就是所有优秀应用程序的功能。
答案 2 :(得分:0)
如果初始视图具有单独的viewController而不是“数据”视图,则可以向appDelegate添加对dataView的引用,然后执行以下操作:
if (self.curAccountManager == nil) {
self.curAccountManager = [[accountManagerController alloc] initWithNibName:@"accountManager" bundle:[NSBundle mainBundle]];
if (![self.curAccountManager isViewLoaded]) {
UIView *tmpView = self.curAccountManager.view;
tmpView = nil;
}
}
这将加载视图。但如果它正在进行大量加载,当用户切换到它时,它可能不会很好地响应。我建议你按照上面的建议,在数据视图中异步加载数据,这样你至少可以显示用户状态或部分结果。