所以我有一个 UITableCell,其中包含一个用于在我的应用程序上添加特定 friend 的按钮。当好友请求提交到我的应用程序上的数据库时,我希望按钮文本从“添加”更改为“已添加”。但是,使用我当前的代码,在我第二次单击按钮之前,标题不会改变,即使它到达代码的相同部分,按钮也不会改变,除非我第二次单击它(我想最终一旦更改文本,请禁用此按钮)。
这是我的代码:
[[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
的按钮文本?
最佳答案
这很可能是一个异步问题。创建一个类似
的方法- (void)updateButton
{
dispatch_async(dispatch_get_main_queue(), ^{
// update button title
// disable button
});
}
并从 if (task.result) { }
关于ios - UIButton 在第二次单击之前不会以编程方式更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40600170/