2

かなり単純な質問ですが、正しく機能させることができません。セクション内のセルがクリックされたときに、セクションの文字列ヘッダー値にアクセスできる必要があります。

私の最初の試みはうまくいきませんでした:

[tableView titleForHeaderInSection:1];

それがうまくいくと思った理由は、私もこれを使っているからです:

[tableView cellForRowAtIndexPath:indexPath];

これはうまくいきます。デリゲートを実装していますが、UITableView が titleForHeaderInSection に応答しない可能性があるという警告がまだ表示されます。そして、認識されないセレクターが原因でクラッシュします。

セル タイトルの文字列値とセクション タイトルを次のビューに渡すだけです。

私は何を間違っていますか?より良いアプローチはありますか?ありがとう

4

4 に答える 4

1

titleForHeaderInSectionからアクセスできます。オブジェクト チェーンをたどるだけです。UITableViewControllerUITableView

ビューコントローラーから始まる例:

class TableViewController: UITableViewController {

    func titleForHeaderInSection(indexPath:NSIndexPath) -> String? {
        if let tableView = self.tableView {
            if let dataSource = tableView.dataSource {
                if dataSource.respondsToSelector("tableView:titleForHeaderInSection:") {
                    return dataSource.tableView!(tableView,
                                                 titleForHeaderInSection:indexPath.row)
                }
            }
        }
        return nil
    }
}
于 2016-01-16T07:24:45.813 に答える
0

titleForHeaderInSectionUITableViewDataSourceクライアントクラス not によって実装されるプロトコルのメソッドですUITabelView

titleForHeaderInSectionしたがって、UITableViewインスタンスを呼び出すことはできません。

于 2011-06-27T14:55:09.573 に答える
0

どうですか:

[tableView titleForHeaderInSection:indexPath.section];

于 2011-06-27T14:58:33.430 に答える
0

手動で電話してtitleForHeaderInSectionもうまくいきませんでした。

しかし、単純な[tableView reloadData]ことでうまくいきました。

お役に立てれば

于 2012-11-26T22:21:45.647 に答える