1

我正在设计和编码一个 iPhone 应用程序来显示电影时间。我目前有一个电影类,其中包含:

  • NSString title
  • NSSDate releaseDate
  • NSSDate score

我的 UI 很简单UINavigationController,它有一个分段控件作为标题,并UITableView在 Interface Builder 中显示电影设置。分段控件有 3 个部分:标题、开幕日期和分数(在 RottenTomatoes 上)。表视图的数据当前由NSMutableArray moviesAppDelegate 的属性提供。

我知道我可以使用以下代码注册目标操作,但我不确定UITableView此时如何对数据进行排序:

[segmentedControl addTarget:self action:@selector(action:) forControlEvents:UIControlEventValueChanged];

How and where do I resort the UITableViewwhenever the UISegmentedControlselected segment changes?

4

3 回答 3

1

您可以在数据源的方法中放置一些逻辑tableView:cellForRowAtPath:来检查 UISegmentedControl 的当前值,并根据需要更改为每一行返回的单元格。然后,每当分段控件的值发生变化时,您所要做的就是调用

[tableView reloadData];

一切就绪。

于 2009-06-26T18:01:12.230 回答
1

我有一个段控件,它可以以三种不同的方式排序/过滤项目 - 因为项目的数量取决于过滤器/订单我使用 3 个不同的 NSArray 对象来保存排序列表。

因此,当我加载数据时,我将它的一个版本放在每个数组中的正确位置(或者不在数组中,具体取决于过滤器)。

我有一个调用来获取使用分段控件的状态来决定返回哪个数组的数组。

调用数组的方法用于代替普通数组,这意味着当分段控件发生更改时,我要做的就是调用 [tableView reloadData] 来更改内容,一切都已为我完成。

于 2009-06-26T18:52:00.010 回答
1

此外,您可以使用任何sortArrayUsingxxx 方法对数据进行排序NSArray

于 2009-06-26T18:54:35.683 回答