Вопрос по ios – Как переопределить tableView: titleForHeaderInSection: настроить заголовки разделов статических UITableViews?

1

Я играю с раскадровками, и для одного контроллера я настроилUITableView это состоит из двух разделов. В обоих разделах я добавил паруstatic клетки. Однако, в зависимости от путей кода, я хотел бы показать разныеheaders для моих двух разделов. Как нет источника и делегата, как я должен переопределитьtableView:titleForHeaderInSection: ?

Почему этот тэг monotouch? Вопрос не означает, что вы используете это. jrturton
Да, но я также использую ObjectiveC. Так что решение на любом языке будет хорошим и поможет мне перевести его на другой. Krumelur

Ваш Ответ

2   ответа
0

возможно, мне нужна дополнительная информация. Вы говорите, что в раскадровке вы имели контроллер представления и перетаскивали объект представления таблицы на этот контроллер представления?

если это так, тогда этот контроллер представления все еще может быть источником данных и делегатом этого табличного представления.

в вашем .h файле: @interface VIEWCONTROLLERNAME: UIViewController & lt; UITableViewDataSource, UITableViewDelegate & gt;

в вашем файле .m вам нужно будет объявить необходимые методы для каждого из них: cellForRowAtIndexPath и numberOfRowsInSection (см. документацию по обязательным и необязательным сообщениям), чтобы избежать «неполной ошибки реализации». это также место, где вы можете переопределить titleForHeaderInSection.

и вернувшись в раскадровку, вы щелкнете правой кнопкой мыши по представлению таблицы и перетащите опцию источника данных и делегирования на ваш контроллер представления (или сделайте это на вкладке Инспектора соединений)

если это не то, что вы делаете, пожалуйста, предоставьте больше информации.

полностью согласен. но я бы предположил, что он использует статические данные, потому что он не знал, что может реализовать протокол источника данных.
Спрашивающий использует статический контент в табличном представлении. При этом вам не нужно реализовывать методы источника данных.
Нет, я использую статический контент, потому что контент статический! :-) В этом все преимущество новых статических ячеек. Однако мне интересно, есть ли способ повлиять на статическое электричество. Krumelur
3

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

-(NSString*)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    if (section == 0)
        return @"HELLO!";
    else {
        return [super tableView:tableView titleForHeaderInSection:section];
    }
}

Устанавливает заголовок раздела 0 в статической таблице на HELLO !, переопределяя заголовок, установленный в xib. Остальные остались как были в xib.

Ключевым моментом является то, что статические таблицы заполняются точно так же, как динамические таблицы, за исключением того, что UITableViewController реализует свои собственные версии всех методов источника данных. Эти методы предположительно считывают информацию из файла XIB и отправляют обратно соответствующую информацию в табличное представление. Если вам нужен статический контент, не используйте или не вызывайте super. Если вы хотите, чтобы ваш собственный контент, используйте код, аналогичный приведенному выше.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Krumelur
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Krumelur

Похожие вопросы