在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;
}
或者这是错误的做法?有没有更有效的方法呢?
答案 0 :(得分:2)
删除viewDidLoad
方法中的切换条件,一切正常。