记住活动状态指示器ios

时间:2014-03-12 06:57:08

标签: ios objective-c parse-platform

我在保存UIActivityIndicator时显示PFObject(使用Parse.com)

- (void) saveNewMessage {
    // Show Activity Indicator
    UIActivityIndicatorView *activityView=[[UIActivityIndicatorView alloc]     initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];

    activityView.center=self.view.center;
    [activityView startAnimating];

    // Create Message
    ...

    // Save Message
    [message saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
        if (succeeded) {
            // complete activity indicator 
            [activityView stop];
        }
    }];
}

我的问题:如果用户在我们仍然保存的情况下离开视图,然后返回到视图并且保存尚未完成,该怎么办? UIActivityIndicatorView将会消失。如何确定解析操作是否已完成?

3 个答案:

答案 0 :(得分:0)

这取决于你如何实现“离开视图”和“回到视图”

如果您使用相同的viewcontroller(例如,使用导航视图控制器推送弹出vc),UIActivityIndi​​catorView有一个名为

的方法
- (BOOL)isAnimating

您可以查看UIActivityIndi​​catorView的状态

否则(即你分配并呈现一个新的viewcontroller)你需要使用全局机制,nsnotificationcenter可能适合你的需要,或者你可以在AppDelegate中设置一个变量,或者你可以读/写一个本地文件。

答案 1 :(得分:0)

您可以在视图控制器中存储BOOL,告知保存操作已完成,然后在完成块中将其与[activityView stop];一起更新。

然后,要处理用户离开屏幕并稍后返回的情况,请在- (void)viewWillAppear中添加一个检查,以便在保存操作完成时隐藏UIActivityIndicatorView(例如,如果您的{{ 1}}设置为BOOL)。

答案 2 :(得分:0)

PFObject实际上有一个内置的布尔值来告诉我们何时完成保存。您也可以同时禁用保存按钮,以防止获得多个保存请求。

[activityView startAnimating]

    [yourobject saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error){
            if (succeeded) {


     [activityView stopAnimating];  
    }else{


     [activityView stopAnimating];

    }
相关问题