IPhone - 显示等待指示器

时间:2010-03-11 09:00:53

标签: iphone sdk wait indicator

我尝试做什么: 如果用户按下按钮,则会加载新的视图控制器并将其推送到导航控制器。

新的视图控制器在它的ViedDidLoad方法中进行一些硬数据库查询,这会导致几秒钟的时间来加载视图。

我正在尝试在视图开始加载之前显示等待指示符。

如果我在分配新视图之前尝试添加UIActivityIndi​​catorView作为我的起始视图的子视图,则在新视图加载完成后显示指示符...

我还尝试将数据库查询放在ViewDidAppear方法中,但结果相同。

2 个答案:

答案 0 :(得分:2)

看看MBProgressHUD。这很容易实现。
主要问题是所有UI更改必须在主线程上完成,因此所有需要相对较长时间的任务必须在后台线程上完成。
MBProgressHUD会为你做这个。如果您想自定义它,只需更改代码即可。

答案 1 :(得分:0)

问题是必须在应用程序主线程上执行所有UI更改。如果某些东西阻塞主线程,则不会应用UI更改(在您的情况下不会显示UIActivityIndicatorView)。

要解决您的问题,您必须在后台线程中运行加载数据例程(例如使用-performSelectorInBackground:withObject方法),将主线程留给UI。