Текст не отображается в сгруппированном UITableView - PullRequest
1 голос
/ 02 января 2012

Текст для каждой ячейки в 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 ]

1 голос
/ 02 января 2012

В созданных вами словарях нет ключа @ "Страны", который вы использовали в - (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath

1 голос
/ 02 января 2012

Попробуйте изменить метод init для ячеек с:

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

вместо устаревшего initWithFrame.

А также убедитесь, что строка, которую вы пытаетесь установить, не равна нулю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...