gpt4 book ai didi

ios - UITableViewController 表删除后不会刷新,但会在 viewWillAppear 上刷新

转载 作者:行者123 更新时间:2023-11-29 03:29:56 26 4
gpt4 key购买 nike

我为每个单元格设置了一个按钮,单击后将从 Parse 后端删除每个单独的对象。我将它设置为 reloadData 在 block 中成功时如下所示:

- (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,单元格仍然显示(即使它已经消失了,因为如果我离开并再次打开 View ,viewWillAppear 会使用相同的 reloadData 函数和项目按照应有的方式运行。所以我知道这些函数在工作,因为它显然在 viewWillAppear 中工作。不知道为什么一旦 block 成功它就不起作用正在运行,因为警报和我输入的任何 NSLog 消息一样正常运行?

最佳答案

将刷新方法更改为:

-(void)refreshTableView
{
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];
});
}

关于ios - UITableViewController 表删除后不会刷新,但会在 viewWillAppear 上刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19937724/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com