所以我有一个UITableCell,它包含一个按钮来在我的应用程序中添加一个特定的朋友。当好友请求提交到我的应用程序中的数据库时,我希望按钮文本从“添加”更改为“已添加”。然而,我当前的代码,标题不会改变,直到我按一下按钮第二次,即使它达到了代码的同一部分,该按钮将不会改变,除非我点击它第二次(我想最终禁用此按钮后,它改变文字)。UIButton没有以编程方式更新,直到第二次点击
这里是我的代码:
[[dynamoDBMapper save:friend] continueWithBlock:^id(AWSTask *task) {
if (task.error) {
NSLog(@"The request failed. Error: [%@]", task.error);
}
if (task.exception) {
NSLog(@"The request failed. Exception: [%@]", task.exception);
}
if (task.result) {
NSLog(@"Task result is %@", task.result);
NSLog(@"You've made it to the change text section");
[_addBtn setTitle:@"Added" forState:UIControlStateNormal];
}
return nil;
}];
有谁看到我在做什么错?或者有另一种方法可以更改_addBtn
的按钮文本?
在_addBtn setTitle:行上设置一个断点并检查两件事情:_addBtn不是零,并且您位于主线程上。如果其中任何一个为false,则UI更新将失败。 – jsd
该块是异步的吗?尝试更新主线程上的按钮标题。 – JKoko