UITableView中每个单元格的文本都没有显示,我不能为我的生活找出原因。我在表视图中有3个部分,并且正确显示了部分,每个部分的行数也是如此。但是,所有部分的每一行内的文本都是空的。我的代码是:
- (void)viewDidLoad {
[super viewDidLoad];
listofsections = [[NSMutableArray alloc] init];
NSArray *shuffle = [NSArray arrayWithObjects:
@"Display words in alphabetical order", @"Display words in shuffled order", nil];
NSDictionary *shuffleDict = [NSDictionary dictionaryWithObject:shuffle forKey:@"Object Key"];
NSArray *wordFilter = [NSArray arrayWithObjects:
@"Show all words", @"Show words not yet appeared", @"Show words marked correct", @"Show words marked incorrect", @"Show words marked as favorite", @"Show words saved for later", nil];
NSDictionary *wordFilterDict = [NSDictionary dictionaryWithObject:wordFilter forKey:@"Object Key"];
NSArray *wordDisplay = [NSArray arrayWithObjects:
@"Display words first", @"Display definition first", nil];
NSDictionary *wordDisplayDict = [NSDictionary dictionaryWithObject:wordDisplay forKey:@"Object Key"];
[listofsections addObject:shuffleDict];
[listofsections addObject:wordFilterDict];
[listofsections addObject:wordDisplayDict];
// Do any additional setup after loading the view from its nib.
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return [listofsections count];
}
// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
//Number of rows it should expect should be based on the section
NSDictionary *dictionary = [listofsections objectAtIndex:section];
NSArray *array = [dictionary objectForKey:@"Object Key"];
return [array count];
}
- (UITableViewCellAccessoryType)tableView:(UITableView *)tableView accessoryTypeForRowWithIndexPath:(NSIndexPath *)indexPath {
//return UITableViewCellAccessoryDetailDisclosureButton;
return UITableViewCellAccessoryNone;
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
if(section == 0) {
return @"Word Display Order";
}
if (section == 1) {
return @"Word Filter";
}
else
return @"Display Selection";
}
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
// Set up the cell...
//First get the dictionary object
NSDictionary *dictionary = [listofsections objectAtIndex:indexPath.section];
NSArray *array = [dictionary objectForKey:@"Countries"];
NSString *cellValue = [array objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
答案 0 :(得分:1)
尝试使用以下命令更改单元格的init方法:
cell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
而不是弃用的initWithFrame。
并确保您尝试设置的字符串不是nil。
答案 1 :(得分:1)
您创建的词典没有使用您使用的密钥@“Countries” - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath