2015-03-17 2 views
0

Я создал UITableView с пользовательской ячейкой & сохраненное имя, no, pincode в эту ячейку.Добавление раздела и списка индексов с пользовательской ячейкой, searchdisplaycontroller

Вот мой код для массива: -

for (int i =0; i<[tempArr count]; i++) 
    { 
     NSString *rawData = [tempArr objectAtIndex:i]; 

     if (rawData !=nil) 
     { 
      Persons *newPerson = [[Persons alloc]init]; 

      NSArray *data = [rawData componentsSeparatedByString:@"\t"]; 

      newPerson.name = [NSString stringWithFormat:@"%@",[data objectAtIndex:0]]; 
      newPerson.no = [[data objectAtIndex:1] integerValue]; 
      newPerson.pincode = [[data objectAtIndex:2] integerValue]; 

      [allPersons addObject:newPerson]; 
     } 
    } 

Вот мой Customcell.h

@interface Customcell : UITableViewCell 

@property(weak) Persons* person; 

@end 

UITableView Datasrouce метод: -

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    Customcell *cell = [tblStations dequeueReusableCellWithIdentifier:@"personCell"]; 

    if (tableView == self.searchDisplayController.searchResultsTableView) 
    { 
     cell.person = filteredContentList[indexPath.row]; 
     [cell.textLabel setText:cell.person.name]; 
    } 
    else 
    { 
     cell.person = allPersons[indexPath.row]; 
     [cell.textLabel setText:cell.person.name]; 
    } 

    return cell; 
} 

Как создать Раздел & индексный список для всех имен от А до Я & дать название cell.textLabel.text?

I am following This Tutorial, но у него есть статические ключи & имена добавлены к NSDictionary, NSArray.

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

Я хочу добавить количество разделов & название для этих разделов по именам, находящимся в массиве или cell.textLabel.text динамически.

я не знаю, о UISearchDisplayController, что эти разделы & списка индексов будет отображающими в UISearchDisplayController, так что я не хочу эти разделы & списка индексов при поиске.

+0

Возможно, этот ответ может помочь решить вашу проблему? http://stackoverflow.com/questions/23410353/search-bar-and-search-display-controller-in-table-view/23452670#23452670 – andrewbuilder

+0

@andrewbuilder no, я уже добавил функцию поиска, но мой массив allPersons содержит много имена с такими же буквами сначала, как Andew, Andy, Aerial, Bony, Biska, Vincent, Vonboy, Zed, Zion и т. д., поэтому я не могу использовать этот массив для numberofsections. Мне нужно указать количество разделов, которые не имеют повторяющихся букв в этом массиве, который находится в allPersons (name). –

+0

Чтобы заполнить свой собственный метод 'numberOfSections', создайте отдельную локальную переменную' NSSet' на основе вашего массива и верните это значение. – andrewbuilder

ответ

0

Вам нужно потратить немного больше времени, пытаясь сделать ваши вопросы более ясными.

Включить пользовательскую реализацию необходимых UITableView методов источника данных и делегат ...

NOTE мое предположение, что переменная allPersons является NSMutableArray.

ПРИМЕЧАНИЕ. Эти данные не относятся к наборам данных результатов поиска!

Вернуть NSInteger для количества секций в вашем UITableView ...

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    NSSet *setData = nil; 
    NSInteger integerData = 0; 

    setData = [NSSet setWithArray:allPersons]; 
    integerData = [setData count]; 

    return integerData; 
} 

UPDATE

возвращают NSString для заголовков заголовка раздела ...

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { 
    NSOrderedSet *setData = nil; 
    NSString *stringData = nil; 

    setData = [NSOrderedSet orderedSetWithArray:allPersons]; 
    stringData = [[setData allObjects] componentsJoinedByString:@" "]; 

    return stringData;  
} 

... плюс другие, если у меня есть время ...

+0

Мне жаль, что вы запутались но я сделал так, как вы сказали, но я должен передать этот набор для titleForHeaderInSection & sectionIndexTitlesForTableView, чтобы я мог видеть заголовок с этими уникальными буквами из NSSet & in Indexlist.? –

+0

№ Для каждой из них требуется отдельная реализация соответствующего пользовательского метода. Вам действительно нужно сделать еще одну попытку понять, как работает UITableView. В Интернете доступно много информации. У меня нет времени, чтобы написать все методы для вас сейчас, но может быть в состоянии сделать это позже. – andrewbuilder