【问题标题】:Show Activity Indicator before passing Segue在通过 Segue 之前显示活动指示器
【发布时间】:2012-08-14 23:05:28
【问题描述】:

好的,我的第一个控制器是一个 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?

【问题讨论】:

    标签: iphone objective-c ios xcode ios4


    【解决方案1】:

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

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

    这里是来自Apple Documentation的更多信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 2012-01-25
      • 1970-01-01
      • 2016-08-01
      相关资源
      最近更新 更多