分组的tableview显示不同部分的相同行值

时间:2013-11-25 05:08:52

标签: ios objective-c uitableview

我创建了一个分组的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;
}

它在所有部分显示“一个”“两个”“三个”等但我想要不同部分的不同值。请帮我解决这个问题。

1 个答案:

答案 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];