0

好的,进入我的下一个困境。我已经做了很多谷歌搜索,似乎有几种方法可以解决它,但似乎没有一个适合我的表格视图结构。我将 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个。

4

2 回答 2

1

您需要使用以下UITableViewDataSource方法来实现此目的。

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

以下是TheElements该 developer.apple.com 上的应用程序链接,实际上是这样做的 - http://developer.apple.com/library/ios/#samplecode/TheElements

于 2012-05-19T17:11:57.043 回答
0

在您的情况下,您必须使用以下代码使用基于对象的排序,而不是在示例中完成的简单排序

self.tableArray =[[self.tableArray sortedArrayUsingComparator:^NSComparisonResult(Object *first, Object *second){

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

}]mutableCopy] ;

在此之后,您将获得排序后的数组,您可以使用此数组制作数组字典。

于 2012-11-29T07:26:19.410 回答