我已经初始化了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/

10-11 14:49