2

viewDidLoad我有:

[self.tableView registerNib:[UINib nibWithNibName:@"TypeOneCell" bundle:[NSBundle mainBundle]]
               forCellReuseIdentifier:@"CustomCellOne"];

cellForRowAtIndexPath

TypeOneCell *cell;

cell = [tableView dequeueReusableCellWithIdentifier:@"CustomCellOne"];
return cell;

我想对UITableViewController我推送/弹出的所有表使用相同的类。所以我可能会为它创建一个枚举类型和一个变量。所以我会检查视图控制器是哪种类型,然后相应地进行调整。我的问题是我将如何以与上述相同的方式进行此操作。是 ( viewDidLoad) 的问题:

switch (self.theControllerType) {
         case CPTypeOne:
             [self.tableView registerNib:[UINib nibWithNibName:@"TypeOneCell" bundle:[NSBundle mainBundle]]
                   forCellReuseIdentifier:@"CustomCellOne"];
             break;
         case CPTypeTwo:
             [self.tableView registerNib:[UINib nibWithNibName:@"TypeTwoCell" bundle:[NSBundle mainBundle]]
                     forCellReuseIdentifier:@"CustomCellTwo"];
             break;
         default:
             break;
}

然后(cellForRowAtIndexPath):

switch (self.theControllerType) {
    case CPTypeOne {
        TypeOneCell *cell;
        cell = [tableView dequeueReusableCellWithIdentifier:@"CustomCellOne"];
        return cell;
        break;
    case CPTypeTwo {
        TypeOneCell *cell;
        cell = [tableView dequeueReusableCellWithIdentifier:@"CustomCellTwo"];
        return cell;
        break;
    default:
        break;
}

或者这是错误的方法?有没有更有效的方法来做到这一点?

4

1 回答 1

2

删除方法中的开关条件,viewDidLoad一切都会正常工作。

于 2012-11-09T23:34:50.330 回答