UITableView中节标题的问题

时间:2010-04-29 13:12:08

标签: iphone

我在uitableview中设置我的节标题有问题,它可能非常简单,我只是无法解决它。

不是为不同的部分显示不同的标题,而是为每个部分显示相同的标题

请帮助我:)

    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    WorldCupAppDelegate *appDelegate = [UIApplication sharedApplication].delegate;

    return [appDelegate.matchFixtures count];
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {


    WorldCupAppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
    Fixtures *fixtures = [appDelegate.matchFixtures objectAtIndex:section];

    return fixtures.matchDate;

}

2 个答案:

答案 0 :(得分:3)

您的原始代码看起来不错。我打赌appDelegate.matchFixtures不包含你认为它做的数据。将代码修改为如下所示:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
  WorldCupAppDelegate *appDelegate = [UIApplication sharedApplication].delegate;

  NSLog(@"appDelegate.matchFixtures.count = %i", appDelegate.matchFixtures.count);

  return [appDelegate.matchFixtures count];
}

- (NSString *)tableView:(UITableView *)tableView 
titleForHeaderInSection:(NSInteger)section {

  WorldCupAppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
  Fixtures *fixtures = [appDelegate.matchFixtures objectAtIndex:section];

  NSLog(@"For section %i, fixtures.matchDate = %@", section, fixtures.matchDate);

  return fixtures.matchDate;
}

查看调试控制台中的日志输出。

答案 1 :(得分:1)

试试这个

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:      (NSInteger)section {
NSString *title = nil;
// Return a title or nil as appropriate for the section.
switch (section) {
    case 0:
        title = [[appDelegate.matchFixtures objectAtIndex:section]matchDate];
        break;
    case 1:
        title = [[appDelegate.matchFixtures objectAtIndex:section]matchDate];
        break;
    case 2:
        title = [[appDelegate.matchFixtures objectAtIndex:section]matchDate];
        break;
    default:
        break;
}
return title;
 }

修改

在委托类中使用retain设置正确的日期。即使在委托中存储值时,我也遇到了类似的问题。

- (void)setCurrentDates:(NSString *)value {
[value retain]; // <- Retain new value
[date release]; // <- Release old value;
date = value;
}

一切顺利。