У меня была такая же проблема, и я обошел ее, подклассифицировав ячейку элемента (так что для вас это будет TTTableSubtitleItemCell
и переопределив метод setObject
, чтобы вручную включить кнопку раскрытия следующим образом:
- (void)setObject:(id)object {
if (_item != object) {
[_item release];
_item = [object retain];
[super setObject:object];
self.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
Я также использовал этот метод, чтобы позволить себе, чтобы стиль выделения оставался синим, даже если я не обрабатывал URL ожидаемым образом. Это могло бы произойти, просто добавив
self.selectionStyle = UITableViewCellSelectionStyleBlue;
сразу после другого вызова.
Обратите внимание, что вам также необходимо добавить сопоставление между интересующими вас элементами и новой ячейкой настраиваемого элемента в вашем источнике данных. Это требует переопределения одного метода в настраиваемомисточник данных. Если вы хотите, чтобы все ваши TTTableSubtitleItem
s имели кнопку раскрытия, вы можете сопоставить TTTableSubtitleItem
с новой ячейкой пользовательского элемента. В противном случае просто создайте пользовательский подкласс TTTableSubtitleItem
, который не делает никакихизменения к нему. Предполагая, что ваши два новых подкласса CustomItem
и CustomItemCell
ваш источник данных переопределит следующий метод, чтобы выглядеть так:
- (Class)tableView:(UITableView *)tableView cellClassForObject:(id)object {
if ([object isKindOfClass:[CustomItem class]]) {
return [CustomItemCell class];
} else {
return [super tableView:tableView cellClassForObject:object];
}
}
Надеюсьэто помогает