Помогите отладке UITableView, не показывает данных - PullRequest
1 голос
/ 15 июля 2011

Сначала мне было поручено создать всплывающее окно, полученное из BarButtonItem, а затем на основе выбора в этом всплывающем окне (которое представляло собой табличное представление) другой всплывающий элемент представлял себя из ячейки с данными. Данные, которые я имел, были правильно представлены таким образом. В отладчике я все еще вижу данные в моем cellForRowAtIndexPath с NSLog, что находится в self.CategoriesArray. По какой-то причине, однако, данные не будут отображаться ... Теперь, однако, они не хотят начальный всплывающий элемент, а только один всплывающий элемент, который поступает из BarButtonItem. Насколько я могу судить, я не могу понять, почему мои данные не представлены, поскольку все эти изменения должны заменить первый UITableView во всплывающем окне вторым UITableView. Если я что-то упустил ..... Любая помощь будет оценена. Спасибо!

cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (tableView == _filterTableView || tableView == _categoriesTableView) {

        static NSString *simpleIdentifier = @"SimpleIdentifier";
        UITableViewCell *simpleCell = [tableView dequeueReusableCellWithIdentifier:simpleIdentifier];
        if (simpleCell == nil) {
            simpleCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleIdentifier];
        }
        NSUInteger row;
        row = [indexPath row];
        simpleCell.textLabel.textColor = [UIColor whiteColor];
        simpleCell.selectionStyle = UITableViewCellSelectionStyleNone;

        // first popover
        if (tableView == _filterTableView) {
            simpleCell.textLabel.text = [_filterArray objectAtIndex:row];
            return simpleCell;
        }
        // second popover
        else if (tableView == _categoriesTableView) {
            simpleCell.textLabel.text = [_categoriesArray objectAtIndex:row];
return simpleCell;
    }

- (IBAction)FilterButtonPressed:(id)sender {

            // This part works for two popovers
//        UIViewController *contentViewController = [[UIViewController alloc] init];
//        self.FilterTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 200, 150) style:UITableViewStylePlain];
//        self.FilterTableView.delegate = self;
//        self.FilterTableView.dataSource = self;
//        self.FilterTableView.bounces = NO;
//        self.FilterTableView.scrollEnabled = NO;
//        self.FilterTableView.backgroundColor = [UIColor clearColor];
//        contentViewController.contentSizeForViewInPopover = CGSizeMake(200, 150);
//        contentViewController.view = _filterTableView;
//        
//        self.FilterPopoverController = [[UIPopoverController alloc] initWithContentViewController:contentViewController];
//        [self.FilterPopoverController presentPopoverFromBarButtonItem:_filterButton permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
//        
//        [contentViewController release];

        // New code tfor one popover
        [self loadCategories];
        UIViewController *contentViewController = [[UIViewController alloc] init];
        self.CategoriesTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 500) style:UITableViewStylePlain];
        self.CategoriesTableView.delegate = self;
        self.CategoriesTableView.dataSource = self;
        self.CategoriesTableView.bounces = NO;
        self.CategoriesTableView.scrollEnabled = YES;
        self.CategoriesTableView.backgroundColor = [UIColor clearColor];
        contentViewController.contentSizeForViewInPopover = CGSizeMake(320, 500);
        contentViewController.view = _categoriesTableView;

        self.FilterPopoverController = [[UIPopoverController alloc] initWithContentViewController:contentViewController];
        self.FilterPopoverController.delegate = self;
        [self.FilterPopoverController presentPopoverFromBarButtonItem:_filterButton permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];        
        [contentViewController release];

    }
}

1 Ответ

0 голосов
/ 15 июля 2011

Я узнаю этот код из вашего другого вопроса.:) Вы устанавливаете цвет текста на белый, а цвет фона по умолчанию для ячейки также белый.Это та же ошибка?Попробуйте установить другой цвет фона для своей ячейки.

Если это не помогает, есть еще одна вещь, которую вы можете проверить.Вы устанавливаете это:

contentViewController.view = _categoriesTableView;

, но из вашего кода неясно, откуда берется _categoriesTableView.У вас есть @synthesize CategoriesTableView = _categoriesTableView; в верхней части вашей реализации?

Установите точку останова для этого назначения представления и убедитесь, что _categoriesTableView не равен nil.

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