场景是:
有一个 View 有一个按钮,可以将用户带到另一个 View 。在下一个 View Controller 的 viewDidLoad 中,一个巨大的 XML 文件被下载、解析并显示在屏幕上。这样,当 View 导航到它时,我得到的数据已经显示在屏幕上。
问题是:
当我单击调用其中包含解析的 View Controller 的按钮时,应用程序变得无响应。下载并解析所有数据后,应用程序将立即移动到下一个 View 。现在,我想在单击该按钮时显示一个事件指示器,直到应用程序无响应为止。一旦 View 导航到另一个 View ,事件指示器就应该停止。我尝试将事件指示器放在我想要登陆的 ViewController 的 viewDidLoad 中,但无济于事。
PS:由于应用程序的性质,我无法在“viewWillAppear”中进行解析。
期待回复。
最佳答案
您应该在后台队列/线程中执行任何不涉及 UI 的主要工作。
使用 GCD,这可能看起来像这样:
// Start UIActivityIndicator
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// Parse your XML
dispatch_async(dispatch_get_main_queue(), ^{
// Update the UI when you're finished
}
}
关于iphone - 解析时的事件指示器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12063752/