我将UITableViewController子类化,并使用GroupedStyle设置UITableView作为子视图。当我在模拟器中运行我的项目时,节标题出现两次:在GroupedStyle和PlainStyle中。有谁知道为什么会这样?我附上了我认为可能是下面罪魁祸首的功能。
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
[self setup];
self.title=@"Literature";
UITableView *tableview = [[UITableView alloc]initWithFrame:self.view.bounds style:UITableViewStyleGrouped];
tableview.scrollEnabled=NO;
tableview.delegate=self;
tableview.dataSource=self;
[self.view addSubview:tableview];
[tableview release];
return self;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
NSInteger inte=2;
switch (section) {
case 0:
inte=2;
break;
case 1:
inte=4;
break;
}
return inte;
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 2;
}
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
NSString *temp;
switch (section) {
case 0:
temp=@"Literature";
break;
case 1:
temp=@"Online";
break;
}
return temp;
}
答案 0 :(得分:1)
UITableViewController为您创建一个表视图,并将其设置为名为tableView的属性。它还将委托和数据源设置为自身。因此,您必须执行这些操作的所有代码行都是多余的。
问题来自于创建新的表视图并将其添加为子视图。因此,您现在有2个表视图,您作为子视图添加的视图和作为tableView属性创建的UITableViewController。
我怀疑你得到的显示是两个重叠的表视图的结果。其中一个表视图是您设置为GroupedStyle的视图,另一个是默认的PlainStyle。