Как вручную вызвать метод titleForHeaderInSection в UITableView? - PullRequest
2 голосов
/ 27 июня 2011

Довольно простой вопрос, но я просто не могу заставить его работать правильно.Мне нужно иметь доступ к значению заголовка строки раздела, когда щелкается ячейка в этом разделе.

Мои первоначальные попытки не сработали:

[tableView titleForHeaderInSection:1];

Причина, по которой яЯ думаю, что это будет работать, потому что я также использую это:

[tableView cellForRowAtIndexPath:indexPath];

, который работает нормально.Я реализую делегат, но я все еще получаю предупреждение, что UITableView может не отвечать на titleForHeaderInSection.А затем происходит сбой из-за нераспознанного селектора.

Все, что мне нужно сделать, - это передать строковое значение заголовка ячейки и заголовка раздела в следующее представление.

Что я делаюнеправильно?Есть ли лучший подход?Спасибо

Ответы [ 4 ]

1 голос
/ 16 января 2016

Вы можете получить доступ к titleForHeaderInSection из UITableViewController и UITableView: вам просто нужно следовать цепочке объектов.

Пример запуска на контроллере вида:

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
    }
}
0 голосов
/ 27 июня 2011

как насчет:

[tableView titleForHeaderInSection:indexPath.section];

0 голосов
/ 27 ноября 2012

Вызов вручную titleForHeaderInSection у меня не сработал.

Но простой [tableView reloadData] сделал свое дело.

Надеюсь, это поможет

0 голосов
/ 27 июня 2011

titleForHeaderInSection - это метод протокола UITableViewDataSource, который реализуется клиентским классом, а не UITabelView.

Так что вы не можете вызвать titleForHeaderInSection на вашем UITableView экземпляре.

...