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) に設定されます。
スイッチ自体の表示状態は正しいままですが、セル プロパティは正しくありません。
デキューされた後、プロパティが保持されていないと思いますか?