Организация табличного представления в алфавитных разделах

хорошо, на мою следующую дилемму. Я сделал тонну Google, и кажется, что есть несколько способов сделать это, но ни один из них, похоже, не соответствует моему структурированию моего табличного представления. Я использую Xcode 4.3.2 с ARC и раскадровками. У меня есть обычный вид таблицы. Моя таблица состоит из списка городов и их отделов (по одному городу в каждой строке), когда пользователь выбирает город, он будет перенаправлен на подробное представление об этом городе. Я хочу организовать свою таблицу в алфавитном порядке с заголовком раздела. Буду очень признателен за любые рекомендации, подсказки, ссылки на учебники.

У меня есть массив NSMutable, настроенный так в моем табличном представлении .m

NSMutableArray *dept;   

- (void)viewDidLoad

{
[super viewDidLoad];

dept = [[NSMutableArray alloc] init];

City *thedept = [[City alloc] init];
[thedept setCityname:@"Albany"];
[thedept setPhone:@"5551237890"];
[dept addObject:thedept];

thedept = [[City alloc] init];
[thedept setCityname:@"Boston"];
[thedept setPhone:@"5556543435"];
[dept addObject:thedept];

thedept = [[City alloc] init];
[thedept setCityname:@"Springfield"];
[thedept setPhone:@"5553456323"];
[dept addObject:thedept];

thedept = [[City alloc] init];
[thedept setCityname:@"Tallahassee"];
[thedept setPhone:@"5552450988"];
[dept addObject:thedept];

thedept = [[City alloc] init];
[thedept setCityname:@"Vacouver"];
[thedept setPhone:@"5551312555"];
[dept addObject:thedept];

Заголовок раздела может быть просто буквой алфавита (A, B, C, D...). Я думаю, что мне нужно предварительно организовать свои города по их первой букве и, возможно, назвать раздел на основе буквы (например, «sectionAcities»). Городов, которые я привел, всего несколько, всего у меня около 100.


person Chris    schedule 19.05.2012    source источник


Ответы (2)


Для этого вам необходимо использовать следующие UITableViewDataSource методы.

sectionIndexTitlesForTableView:
tableView:titleForHeaderInSection:
tableView:sectionForSectionIndexTitle:atIndex:

Ниже приведена ссылка на TheElements приложение, представленное на сайте developer.apple.com, которое на самом деле делает это — http://developer.apple.com/library/ios/#samplecode/TheElements

person rishi    schedule 19.05.2012
comment
Риши, я видел этот урок, спасибо. Я знаю методы, я просто не уверен, как создать экземпляр со структурой моего массива. Я заметил, что пример TheElements использует plist, и это меня смущает. - person Chris; 19.05.2012

В вашем случае вам нужно использовать сортировку на основе объектов, используя следующий код вместо простой сортировки, выполненной в образце

self.tableArray = [[self.tableArray sortedArrayUsingComparator: ^ NSComparisonResult (объект * первый, объект * второй) {

    NSString *name1=[first name];
    NSString *name2=[second name];
    return [name1 compare:name2];

}]mutableCopy] ;

После этого вы получите свой отсортированный массив, и вы можете использовать этот массив для создания словаря массива.

person Shreesh Garg    schedule 29.11.2012
comment
Пожалуйста, укажите URL своего веб-сайта в своем профиле, вместо того, чтобы разбрасываться во всех своих ответах. - person Andrew Barber; 29.11.2012