我创建了一个分组的tableview。我有3个部分,并尝试使用1个数组显示所有部分的不同行。但它显示所有部分的相同单元格文本。这是我实施的委托方法。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
mSectionArray = [NSArray arrayWithObjects:@"abc", @"def",@"ghi", nil] ;
return [mSectionArray count];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if(section == 0) {
mContentArray = [NSArray arrayWithObjects:@"hello",@"hello1", nil];
}
if(section == 1) {
mContentArray = [NSArray arrayWithObjects:@"one", @"two",@"three",@"four",@"five", nil];
NSLog(@"section 1 %@",mContentArray);
}if (section == 2){
mContentArray = [NSArray arrayWithObjects:@"abc", nil];
}
return [mContentArray count];
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
NSString *sectionHeader = nil;
if(section == 0) {
sectionHeader = @"abc";
}
if(section == 1) {
sectionHeader = @"def";
}
if (section == 2) {
sectionHeader = @"ghi";
}
return sectionHeader;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = nil;
cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if(!cell){
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"Cell"];
}
cell.textLabel.text = [mContentArray objectAtIndex:indexPath.row];
cell.textLabel.textColor = [UIColor darkGrayColor];
return cell;
}
它在所有部分显示“一个”“两个”“三个”等但我想要不同部分的不同值。请帮我解决这个问题。
答案 0 :(得分:1)
你的数组应该是这样的:
intialize in viewDidLoad
mContentArray = [[NSMutableArray alloc]init];
NSArray * araray1 = [[NSArray alloc] initWithObjects:@"hello",@"hello1", nil];
NSArray * araray2 = [[NSArray alloc] initWithObjects:@"one", @"two",@"three",@"four",@"five", nil];
NSArray * araray3 = [[NSArray alloc] initWithObjects:@"abc", nil];
[mContentArray addObject:araray1];
[mContentArray addObject:araray2];
[mContentArray addObject:araray3];
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return [mContentArray count];
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [[mContentArray objectAtIndex:section]count];
}
检索时
cell.textLabel.text = [[mContentArray objectAtIndex:indexPath.section]objectAtIndex:indexPath.row];