viewcontroller中的多个可能视图

时间:2013-10-27 08:52:10

标签: ios uitableview view

我有一个包含几个项目的tableview。当我点击其中一个单元格时,我想获得一个新视图。但是,我希望视图根据我单击的单元格而有所不同。 例如:我有建筑物的桌面视图。这些建筑物可以是机场,工厂和房屋。

当我点击显示机场的单元格时,我希望下一个视图与单击显示工厂的单元格时不同。

我该怎么做?

1 个答案:

答案 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属性来存储该类型。