1

QLabelElement を初期化してから、後でその値を更新したいと考えています。ただし、QLabelElement のインスタンスで .value プロパティを明示的に設定しても、その値は更新されません。これが私がやろうとしていることのスニペットです。sayHello ボタンが押されると onSelected デリゲートが実行されますが、ラベル要素は更新されません。

@実装 MyController
{
    QLabelElement *_theLabel;
}

- (id)init
{
    自己 = [スーパー初期化];
    QRootElement *root = [[QRootElement alloc] init];
    QSection *section = [[QSection alloc] init];
    _theLabel = [[QLabelElement alloc] initWithTitle:@"ラベル" 値:@""];
    QSection *sectionButton = [[QSection alloc] init];
    QButtonElement *sayHello = [[QButtonElement alloc] initWithTitle:@"Say Hello"];

    [ルートなどに追加されたセクションとコントロール]

    sayHello.onSelected = ^{
        _theLabel.value = @"こんにちはと言われました"; //<-- これは機能していません
    };

    //setting _theLabel.value = @"こんにちはと言われました" ここでは機能しますが、デリゲートでは機能しません

    self.root = ルート;

    自分自身を返します。
}
4

2 に答える 2

1

onSelected イベントの実装によって、画面にレンダリングされているデータがリロードされるとは思えません。更新をレンダリングするには、いくつかの方法があります。

1) UITableView 全体をリロードする

- (void)reloadData

Apple Doc - reloadData

2) インデックス パスがわかっている場合は、データをリロードします。

- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

Apple Doc - reloadRowsAtIndexPaths!

于 2013-04-05T01:05:59.000 に答える