Почему UITableView не может быть reloadData

#xcode #uitableview #tableview

#xcode #uitableview #просмотр таблицы

Вопрос:

  -(void) reload{
        [self.tableViewa reloadData];
    }

    -(void) viewWillAppear:(BOOL)animated{
        [self.tableViewa reloadData];
        [cachedProperties setTags:nil];


        self.tabBarController.navigationItem.rightBarButtonItem =nil;
        self.tabBarController.navigationItem.leftBarButtonItem =nil;
    }

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        return [[cachedProperties getTags] count];
    }

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString *CheckMarkCellIdentifier = @"CheckMarkCellIdentifier";
        UITableViewCell * cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CheckMarkCellIdentifier] autorelease];

        NSUInteger row = [indexPath row];

        if([[[cachedProperties getTags] objectAtIndex:row] isNotEmpty]){
            cell.textLabel.text = [[cachedProperties getTags]objectAtIndex:row];
            cell.accessoryType= UITableViewCellAccessoryDetailDisclosureButton;
        }
        return cell;
    }
  

с помощью этого метода, когда появится представление, появится код [self.tableviewa reloadData] и вызовет numberOfRowsInSection, но когда я вызываю метод Reload, который имеет [self.tableviewa reloadData], функция numberOfRowInSection вызываться не будет.. как это может быть? есть ли причина этой проблемы?

поскольку при первом вызове viewWillAppear [cachedProperties setTags:nil] установит теги и вызовет -(void) reload{
[self.tableViewa reloadData];
}
или [thatClass.tableViewa reloadData], которые мне нужны, чтобы сделать TableView не равным null . почему TableView не загружает reloadData?

Комментарии:

1. Как насчет numberOfSectionsInTableView: метода? Вы проверили, что он возвращает значение, отличное от 0 ?

Ответ №1:

Попробуйте это:

  -(void) reload{
        [self.tableViewa reloadData];
        [cachedProperties setTags:nil];
    }

    -(void) viewWillAppear:(BOOL)animated{
        [self reload];

        self.tabBarController.navigationItem.rightBarButtonItem =nil;
        self.tabBarController.navigationItem.leftBarButtonItem =nil;
    }