我目前正在Swift 1.2中创建一个带有主从细节UITableViewController设置的iOS应用程序,以便MasterTableViewController具有推送到DetailTableViewController的单元格。
DetailTableViewController具有相当复杂的单元格,可以从Web客户端提取数据以生成图表,类似于Apple的Health应用程序。所有数据下载通常需要大约5-10秒。
因此,在显示DetailTableViewController之前点击MasterTableViewController中的单元格时会有5-10秒的延迟。
我最好立即从MasterTableViewController推送到DetailTableViewController,然后在DetailTableViewController页面上显示一个活动指示器,当下载所有数据时该活动指示器被解除。
有人能指出我朝这个目标迈进吗?谢谢! :)
我的代码如下所示,从主页推送到详细信息。相当基本。我觉得如果我在viewDidLoad或cellForRowAtIndexPath方法中改变某些东西,我可以很容易地完成这个。
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.deselectRowAtIndexPath(indexPath, animated: false)
let detailVC = DetailTableViewController()
detailVC.navigationItem.title = "Your Charts"
self.navigationController?.pushViewController(detailVC, animated: true)
}
答案 0 :(得分:2)
在详细视图控制器上,您可以创建UIActivityIndicatorView变量。
在viewDidAppear中,您可以调用活动指示器,将其置于前面并开始设置动画。
创建一个填充数组的函数,该数组将存储您的单元格将使用的数据,并重新使用您的cellForRowAtIndexPath来使用它。 (而不是在每个单元格中获取数据)。
然后在您的函数中获取数据,在更新表之后(或之前)告诉活动指示器停止动画。