0

クリックしたときに選択したままにしておきたいUITableViewCellを取得しました。だから私はうまく機能するこのコードを持っています:

- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 {   

static NSString *identifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
    }
    cell.textLabel.text = [NSString stringWithFormat:@"%@", [[[self.dataSource objectAtIndex:indexPath.row] lastPathComponent] stringByDeletingPathExtension]];
    //cell.selectionStyle = UITableViewCellSelectionStyleNone;
    UIView *bgColorView = [[UIView alloc] init];
    [bgColorView setBackgroundColor:[UIColor brownColor]];
    [cell setSelectedBackgroundView:bgColorView];
    return cell;
}

セルをクリックするたびに、茶色で選択され、別のセルをクリックするまで選択されたままになります...完璧ですが、ナビゲーションコントローラーの戻るボタンをクリックしてビューを閉じてから、セルのビューに戻ると、もう選択されていません。では、ビューを切り替える前に選択されていたセルが、ビューに戻ったときにまだ選択されていることをどのように実現できますか?

テーブルビューからプロパティを作成してから、viewDidLoadで行を再度選択する必要があると思いました。selectedRowインデックスをnsuserdefaultsに保存できますが、もっと簡単な解決策があるといいのですが。

4

1 に答える 1

0

-viewDidLoadメソッドで、これを下部に追加します。これにより、次のself.clearsSelectionOnViewWillAppear = NO;ようになります。

- (void)viewDidLoad {
    [super viewDidLoad];

    self.clearsSelectionOnViewWillAppear = NO;
}
于 2012-10-18T19:34:43.107 に答える