1

UISwitch を含むカスタムセルを作成しました。

カスタム セル クラスには次のプロパティがあります。

@property (nonatomic, assign) BOOL boolValue;

セルの初期化の重要な部分は次のとおりです。

self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
    UISwitch *boolSwitch = [[UISwitch alloc] init];
    boolSwitch.on = self.boolValue;
        //self.boolValue = boolSwithch.on /** tried as well **/
    [boolSwitch addTarget:self action:@selector(switched:) forControlEvents:UIControlEventValueChanged];
    self.accessoryView = boolSwitch;
}
return self;

そして、switched: メソッド:

- (void)switched:(id)boolSwitch {
    self.boolValue = ((UISwitch *)boolSwitch).on;
}

これですべてうまくboolValueいきました。テーブルビュー デリゲートから問題なく取得できます。つまり、スイッチを揺らした後にモーダル ビューを表示すると言わない限りです。tableView に戻ると、cell.boolValue再びデフォルト (NO) に設定されます。

スイッチ自体の表示状態は正しいままですが、セル プロパティは正しくありません。

デキューされた後、プロパティが保持されていないと思いますか?

4

1 に答える 1