我有一个包含几个项目的tableview。当我点击其中一个单元格时,我想获得一个新视图。但是,我希望视图根据我单击的单元格而有所不同。 例如:我有建筑物的桌面视图。这些建筑物可以是机场,工厂和房屋。
当我点击显示机场的单元格时,我希望下一个视图与单击显示工厂的单元格时不同。
我该怎么做?
答案 0 :(得分:0)
通过为每个单元格提供类型,可以轻松解决问题。如果您正在实现自定义单元类,请将其添加为枚举类型(提高可读性)
// cell header file
typedef enum {
CellTypeAirports,
CellTypeFactories,
CellTypeHouses
} CellType;
@interface CustomTableCell
// ...
@property(assign) CellType type;
@end
在实例化(出列)单元格时设置类型,然后在tableView:didSelectRowAtIndexPath:
方法中检查单元格的类型
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// ...
if ([cell type] == CellTypeAirports) {
// push airports vc
} else if ([cell type] == CellTypeFactories) {
// factories
}
// and so on
}
如果您使用的是标准UITableViewCell
,则可以使用其tag
属性来存储该类型。