私viewDidLoad
が持っている:
[self.tableView registerNib:[UINib nibWithNibName:@"TypeOneCell" bundle:[NSBundle mainBundle]]
forCellReuseIdentifier:@"CustomCellOne"];
とcellForRowAtIndexPath
:
TypeOneCell *cell;
cell = [tableView dequeueReusableCellWithIdentifier:@"CustomCellOne"];
return cell;
UITableViewController
プッシュ/ポップするすべてのテーブルに同じクラスを使用したい。したがって、おそらく列挙型とその変数を作成します。そのため、View Controller のタイプを確認し、それに応じて調整を行います。私の質問は、上記と同じ方法でこれを行う方法です。( 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;
}
それとも、これは間違ったアプローチですか?これを行うより効率的な方法はありますか?