Итак, у меня есть 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 не ноль, и вы находитесь в основном потоке. Если одно из них является ложным, обновление пользовательского интерфейса завершится неудачно. – jsd
Является ли этот блок асинхронным? Попробуйте обновить заголовок кнопки в главном потоке. – JKoko