2011-09-13 77 views
0

我的应用程序有点问题。
我有WebServices接收信息,而不是解析它并将信息存储在数据库中。数据库(FMDB)加载时显示启动画面(UIViewController)iPhone

我想要的是我的启动画面(或UIViewController)被显示,直到所有的信息上传到数据库(FMDB是我使用的数据库)。

目前,我有一个屏幕加载一段时间,而不是被删除。 我使用的代码是:
[self performSelector:@selector(removeSplashScreen) withObject:nil afterDelay:30];

的问题是一些信息加载到数据库中,而另一个则不是。

任何能给我提示如何解决这个问题。

注意:启动画面并不是实际的启动画面(即Default.png),这只是一个UIViewController在该启动画面后显示,我只是将其称为启动画面。

感谢

回答

1

可以通过提供一个通知或委托方法来指示解析完成做到这一点。这可以用来删除启动画面。 这表示它不是一个好的方法来显示启动画面,直到数据加载。如果加载数据有相当大的延迟会怎么样。请重新考虑你的方法。这种方法通常不能很好地与苹果一起使用。

+0

这不是一个真正的启动画面,它是在启动画面后显示的UIViewController。许多应用程序在加载数据时都会这样做。 – Mush

+0

代表工作正常。谢谢 – Mush

0

如果你可以从你的数据库代码(下载,解析并保存)一个回调函数,使用该函数删除闪屏控制器。 将数据存入数据库之后,你在做什么?你是把它显示到一个表或web视图或其他东西?知道这个答案,将有助于优化解决方案,以您的启动画面目标。

编辑:

if (nodeCount == 0 && indexPath.row == 0) 
{ 
    cell.detailTextLabel.text = @"Loading…"; 

    return cell; 
}// Leave cells empty if there's no data yet 
if (nodeCount > 0) 
{ 
    //fill cells with actual data that is present in database 
    return cell; 
} 
+0

数据正在许多UITableView中显示。我只需要将所有数据存入数据库,然后才能显示。 – Mush

+0

如果它是一个表格,你可以随时在第一个单元格上显示一个类似“数据尚未下载”的单元格。一旦数据库中的数据可用,就开始使用tableview中的数据返回实际单元格。这将是一个很好的设计,也很容易实现。 – jkr

+0

我的答案更新为显示一个显示“数据仍在下载”的tableview单元格。 Nodecount实际上告诉了现在表中有多少行已经被实际下载。 – jkr

相关问题