我在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;
}
答案 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;
}
一切顺利。