Iphone 通过赛格前显示活动指示器
好的,我的第一个控制器是UITable,当一个单元格被传递时,它会推送到第二个视图控制器。第二个控制器从Web服务加载数据,因此segue需要一点时间。我希望在选择单元格时显示SVProgressHUD,然后在加载数据后将其关闭,但SVProgressHUD在加载第二个视图后仅显示几毫秒。我现在使用此选项:Iphone 通过赛格前显示活动指示器,iphone,objective-c,ios,xcode,ios4,Iphone,Objective C,Ios,Xcode,Ios4,好的,我的第一个控制器是UITable,当一个单元格被传递时,它会推送到第二个视图控制器。第二个控制器从Web服务加载数据,因此segue需要一点时间。我希望在选择单元格时显示SVProgressHUD,然后在加载数据后将其关闭,但SVProgressHUD在加载第二个视图后仅显示几毫秒。我现在使用此选项: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[SVProgressHUD show];
UITableViewCell *acell = [tableView cellForRowAtIndexPath:indexPath];
[self performSegueWithIdentifier:@"pushCell" sender:acell];
}
选择单元格后,有没有办法立即显示SVProgressHUD?苹果建议,当用户单击tableViewCell时,应用程序应立即切换到下一个视图控制器。在加载下一个视图时,您觉得需要显示SVProgressHUD,这一事实向我表明,您正在使用同步方法请求数据,这将阻止主线程,并使应用程序在等待响应时看起来已冻结 检索数据的最佳实践是始终以异步方式(或在后台线程上)检索数据,以便应用程序始终保持响应。我建议您将请求更改为异步方法(例如,查看NSURLRequest方法
initWithRequest:delegate:
)。如果使用该选项,则可以在第二个控制器的viewDidLoad方法中显示SVProgressHUD,当用户点击表格单元格时,将立即转换到第二个视图控制器,并且在用户等待数据下载时,应用不会被锁定
苹果公司建议,当用户点击tableViewCell时,应用程序应立即切换到下一个视图控制器。在加载下一个视图时,您觉得需要显示SVProgressHUD,这一事实向我表明,您正在使用同步方法请求数据,这将阻止主线程,并使应用程序在等待响应时看起来已冻结 检索数据的最佳实践是始终以异步方式(或在后台线程上)检索数据,以便应用程序始终保持响应。我建议您将请求更改为异步方法(例如,查看NSURLRequest方法
initWithRequest:delegate:
)。如果使用该选项,则可以在第二个控制器的viewDidLoad方法中显示SVProgressHUD,当用户点击表格单元格时,将立即转换到第二个视图控制器,并且在用户等待数据下载时,应用不会被锁定
以下是有关此方法的更多信息,请访问