セルごとにボタンがあり、クリックすると個々のオブジェクトが Parse バックエンドから削除されます。reloadData
ここに見られるように、ブロックでの成功時に設定しました:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
PFRelation *relation = [self.currentUser relationforKey:@"watching"];
[[relation query] findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (error) {
// There was an error
} else {
// NSLog(@"%@", objects);
self.watchingEvents = objects;
[self refreshTableView];
}
}];
}
-(IBAction) deleteButtonAction:(id) sender
{
[SVProgressHUD showWithStatus:@"Removing from Watch List..."];
PFRelation *relation = [self.currentUser relationforKey:@"watching"];
[relation removeObject:self.selectedEvent];
[self.currentUser saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if (error)
{
NSString *errorString = [[error userInfo] objectForKey:@"error"];
UIAlertView *errorAlertView = [[UIAlertView alloc] initWithTitle:@"Error" message:errorString delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[errorAlertView show];
}
else
{
[SVProgressHUD showSuccessWithStatus:@"Removed from Watch List!"];
[self refreshTableView];
}
}];
}
-(void)refreshTableView
{
[self.tableView reloadData];
}
しかし、それはtableViewを更新していないようですが、セルはまだ表示されています(離れて移動してビューを再度開くviewWillAppear
と、同じreloadData
関数で呼び出され、アイテムが本来あるべきようになったため、セルは表示されません。だから私は私viewWillAppear
が入力したNSLogメッセージと同様にアラートが正常に実行されるため、ブロックの成功が実行されると機能しない理由がわかりませんか?