iOS:显示互联网/加载微调器的正确方法?

时间:2014-08-05 12:11:23

标签: objective-c concurrency

我正在尝试在每次互联网活动时为iOS应用程序显示加载微调器(当前使用DejalActivityView (DAV)

我想知道我是否有正确的方法/模式:

  1. 我有一个基本的View Controller,我的所有ViewControllers都继承自
  2. 我在Base VC上设置了一个通知观察者

    self.observerStartSpinner = [[NSNotificationCenter defaultCenter] addObserverForName:kNotification_key_startspinner object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) {
                [DejalActivityView activityViewForView:self.view withLabel:@"Loading..."];
                [DejalActivityView animateWithDuration:0.25 animations:nil];
        }
    
  3. 围绕我有互联网活动异步调用的代码块:

    [[NSNotificationCenter defaultCenter] postNotificationName:kNotification_key_startspinner object:nil userInfo:nil];
    
    // Do all the network setup necessary for asynchronous call
    
    [[NSNotificationCenter defaultCenter] postNotificationName:kNotification_key_stopspinner object:nil];
    
  4. 问题

    以上不起作用。但是,如果我在UIView调用交互功能的地方(在很多地方)撒上(在上面的(3)中),这确实有效。真的很奇怪。但我觉得它与UIView实际加载的时间有关(在(2)中)

    问题

    • 在进行异步网络呼叫时,用于显示加载微调器的方法是什么?
    • 您的方法是针对每个ViewController吗?

1 个答案:

答案 0 :(得分:0)

我使用MBProgressHUD ... https://github.com/jdg/MBProgressHUD

效果很好......

与您相似。我启动Spinner,然后当我收到NSNotification时,我的异步过程完成后,我停止并关闭HUD。