文本未在Grouped UITableView中显示

时间:2012-01-02 19:36:34

标签: iphone ios sdk uitableview

UITableView中每个单元格的文本都没有显示,我不能为我的生活找出原因。我在表视图中有3个部分,并且正确显示了部分,每个部分的行数也是如此。但是,所有部分的每一行内的文本都是空的。我的代码是:

This is how its looking =[

- (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];
    }

2 个答案:

答案 0 :(得分:1)

尝试使用以下命令更改单元格的init方法:

cell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

而不是弃用的initWithFrame。

并确保您尝试设置的字符串不是nil。

答案 1 :(得分:1)

您创建的词典没有使用您使用的密钥@“Countries” - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath