通过Segue之前显示活动指标

时间:2012-08-19 02:29:04

标签: iphone objective-c ios xcode ios4

好的,我的第一个控制器是一个UITabel,当一个单元格传递时,它会推送到第二个视图控制器。第二个控制器从Web服务加载数据,因此segue需要一点点。我想在选择单元格时显示一个SVProgressHUD,然后在加载数据后将其关闭,但SVProgressHUD会在加载第二个视图后显示,并且只显示几毫秒。我现在就使用它:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [SVProgressHUD show];
    UITableViewCell *acell = [tableView cellForRowAtIndexPath:indexPath];
    [self performSegueWithIdentifier:@"pushCell" sender:acell];
}

当选择单元格时,是否可以立即显示SVProgressHUD?

1 个答案:

答案 0 :(得分:3)

Apple建议当用户点击tableViewCell时,应用应立即转到下一个视图控制器。您觉得需要在下一个视图加载时显示SVProgressHUD的事实告诉我您使用同步方法请求数据,这将阻止主线程并使其看起来您的应用程序在等待时已冻结响应。

检索数据的最佳做法是始终异步(或在后台线程上)这样做,以便您的应用始终保持响应。我建议将您的请求更改为异步方法(例如,查看NSURLRequest方法initWithRequest:delegate:)。如果您使用它,则可以在第二个控制器的viewDidLoad方法中显示SVProgressHUD,当用户点击表格单元格时,将立即转换到第二个视图控制器,并且当用户等待时,您的应用程序将不会被锁定数据下载。

以下是Apple Documentation

中有关此方法的更多信息