1

allone.h私は、開示インジケータを備えたすべての字幕スタイルのセルであるセルで呼び出されたテーブルビューを持っています。
サブタイトル テキストは動的に生成されるため、各セルに異なるサブタイトル テキストが含まれる可能性が高くなります。

if the text = "hello, world"という if ステートメントがあります。その後、accessory type を に変更しdetailDisclosureIndicatorます。がdetailDisclosureIndicator押されると、新しいコントローラがプッシュされ、サブタイトル テキストが変更され、そのビュー コントローラがポップされて に戻りますallone.h。問題は、テキスト != "hello, world" でdetailDisclosureIndicatorあってもまだ表示されることです。でスタイルを変更しようとしましたが、セルにアクセスできません。viewWillAppear

これが私のコードです。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//populate cells with stuff

    if([cell.detailTextLabel.text isEqualToString:@"hello, world"]){
       cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
    }
}

だから私の質問は、セルに戻ってセルのテキストが「こんにちは、世界」ではなくなったら、どうすればアクセサリの種類を元に戻すことができるのでしょうかallone.h

4

2 に答える 2

2

-[UITableView cellForRowAtIndexPath:] でそれを行うことができます。if ステートメントの「else」のように。

セルをリロードするには、reloadData または reloadRowsAtIndexPaths:withRowAnimation: を呼び出すだけです。

于 2013-08-22T04:34:07.570 に答える
0

cell.detailTextLable は nil に等しいと思います。なのでセルアクセサリーは変わりません。再確認してください。以前にセルを構成しましたか?

于 2013-08-22T04:40:57.330 に答える