在等待下一页出现时触发活动指示器

时间:2014-04-01 18:49:15

标签: ios iphone objective-c ipad segue

所以这是我的情况。

我正在从一个页面转到另一个,第二个视图需要很长时间才能加载。我想点一个活动指示器。我尝试了各种组合,但我无法正常使用。我的猜测是Segue和activity指标都在主线程上,因此活动指示器没有时间更新,因为线程阻塞了。

当用户点击该链接时,它会触发“活动”按钮操作:

我目前的实施在这里 - 我确定有一个简单的解决方法。

- (IBAction)activityButton:(id)sender {

    dispatch_async(dispatch_get_main_queue(), ^{
        [[self activityIndicator] startAnimating];
    });
    [self performSelector:@selector(segueToPastFlights) withObject:self];

}

-(void)segueToPastFlights {
    [self performSegueWithIdentifier:@"PastFlightSegue" sender:self];
}

如果我实际上没有做segue指标开始旋转正常......

1 个答案:

答案 0 :(得分:0)

AHHA!

解决方法是在后台实际执行segue:

[self performSelector:@selector(segueToPastFlights) withObject:self];

变为

[self performSelectorInBackground:@selector(segueToPastFlights) withObject:self];

所有的工作都像希望的那样!