Ios 将tableView样式从UITableViewStylePlain更改为UITableViewStyleGroup in subclass方法
我有一个Ios 将tableView样式从UITableViewStylePlain更改为UITableViewStyleGroup in subclass方法,ios,uitableview,tableview,Ios,Uitableview,Tableview,我有一个ViewControllerA包含一个带有UITableViewStylePlain样式的tableView,如下所示: - (void)loadView{ [super loadView]; self.tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain]; [self.view addSubview:self.tableView]
ViewControllerA
包含一个带有UITableViewStylePlain
样式的tableView,如下所示:
- (void)loadView{
[super loadView];
self.tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
[self.view addSubview:self.tableView];
}
现在,我有一个ViewControllerSubA
,它是ViewControllerA
的子类,大多数逻辑与ViewControllerA
相同,但是tableView的样式应该是UITableViewStyleGrouped
。我要做的是使用UITableViewStyleGrouped
样式创建一个新的tableView,代码如下:
- (void)loadView
{
[super loadView];
[self.tableView removeFromSuperview];
self.tableView = nil;
self.tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleGrouped];
[self.view addSubview:self.tableView];
}
有没有更好的解决办法?我不认为删除旧的表视图,然后用板条箱装一个新的看起来很好。您可以使用多态性 将基类中的代码更改为
- (void)loadView
{
[super loadView];
//..... additional code here
self.tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:[self getTableStyle]];
[self.view addSubview:self.tableView];
}
- (UITableViewStyle)getTableStyle
{
return UITableViewStylePlain;
}
在你的孩子课上,你应该加上
- (UITableViewStyle)getTableStyle
{
return UITableViewStyleGrouped;
}
它被称为“工厂方法”。是基于ARC的项目吗?