почему [self.tableView reloadData] не работает? - PullRequest
0 голосов
/ 18 марта 2011

Это код для cellForRowAtIndexPath: метод.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier: SimpleTableIdentifier];

if (cell == nil) { cell = [[[UITableViewCell alloc]
    initWithStyle:UITableViewCellStyleDefault reuseIdentifier:SimpleTableIdentifier] autorelease];
}

NSUInteger row = [indexPath row]; 
cell.textLabel.text = [array objectAtIndex:row]; 
return cell;    
}

Когда я использую [self.tableView reloadData];, ничего не происходит?

Ответы [ 3 ]

10 голосов
/ 18 марта 2011

Вам необходимо реализовать как минимум метод tableView: numberOfRowsInSection: как часть протокола UITableViewDataSource и tableView:cellForRowAtIndexPath: (который вы уже сделали). Вы также должны реализовать numberOfSectionsInTableView:.

Затем вам нужно убедиться, что ваш класс действительно используется в качестве источника данных:

self.tableView.dataSource = self;

Это нужно сделать либо через Интерфейсный Разработчик, либо в awakeFromNib, либо каким-либо другим способом, например viewDidLoad:.

1 голос
/ 18 марта 2011

Попробуйте поставить точку останова в ячейке для строки и посмотреть, вызывается ли она при вызове reloadData. Также, пожалуйста, проверьте, внесены ли уже изменения в массив, из которого заполняются ячейки, и убедитесь, что табличное представление связано с его источником данных и делегатом.

1 голос
/ 18 марта 2011

Проверяете ли вы свой источник данных и делегата UITableView? Я думаю, что источник данных ноль или что-то еще.

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