ios - UIButton 在第二次单击之前不会以编程方式更新

标签 ios objective-c uibutton

所以我有一个 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/

相关文章:

ios - 具有唯一标识符的UIButton

ios - ResearchKit - 如何删除折线图上的背景

iphone - 如何按天对 NSDate 对象进行分组?

objective-c - 如何在 View 中保存 UIImage

iphone - 设置标签字体

ios - 当我触摸时,UIButton 突出显示不起作用

iphone - 圆形自定义按钮的事件区域较小

objective-c - 使用 ARC 时是否在 dealloc 中将属性设置为 nil?

c# - 为什么我的 CollectionView 向下或向上滚动时速度很慢?如何解决性能问题?我已经清理了我的 UI 代码

objective-c - 从 Mac 应用程序可执行文件中删除代码签名