我已经初始化了QLabelElement,然后以后想更新其值。但是,在QLabelElement实例上显式设置.value属性不会更新其值。这是我要执行的操作的摘要。按下sayHello按钮时会执行onSelected委托,但label元素不会更新:
@implementation MyController
{
QLabelElement * _theLabel;
}
-(id)初始化
{
自我= [ super 初始化];
QRootElement * root = [[[QRootElement alloc] init];
QSection * section = [[QSection alloc] init];
_theLabel = [[QLabelElement alloc] initWithTitle:@“The Label” Value:@“”];
QSection * sectionButton = [[QSection alloc] init];
QButtonElement * sayHello = [[QButtonElement alloc] initWithTitle:@“说声你好”];
[将节和控件添加到根目录等]
sayHello.onSelected = ^ {
_theLabel.value = @“已经问好”; // };
//设置_theLabel.value = @“您好,有人说过”在这里有效,但在委托中不起作用
self.root =根;
返回自我
}
最佳答案
加载该元素后,您需要重新加载该单元。另外,请注意保留循环,请使用弱变量:
__weak QLabelElement *weakLabel = _theLabel;
sayHello.onSelected = ^{
weakLabel.value = @"Hello has been said"; //<-- this isn't working
[self.quickDialogTableView reloadCellForElements:weakLabel, nil];
};
有一个QD分支可以自动解决此问题,但它肯定还没准备好被消费。
关于ios - 如何更新QLabelElement的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15819102/