UITableView в UIViewController reloadData не обновляет табличное представление - PullRequest
0 голосов
/ 18 сентября 2011

У меня есть свой MainViewController, который является классом UIViewController, в этом представлении у меня есть табличное представление и другое встроенное представление. Как видите, я добавил делегатов табличного представления в контроллер представления.

@interface MainViewController : UIViewController <FlipsideViewControllerDelegate,   UITableViewDataSource, UITableViewDelegate> {

Теперь к моему вопросу, который был задан около 50 раз из нескольких поисков в интернете, но я так и не смог найти решение.

Почему не работает reloadData ...?

Я загружаю информацию из ленты XML и обновляю ленту от делегата приложения:

- (void)applicationDidBecomeActive:(UIApplication *)application

Я вставил несколько NSLogs, это то, что я нашел. Обновленные данные из XML-канала поступают без проблем. Но ячейки табличного представления не обновляются.

Я разместил NSLog в:

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

Хотя данные обновляются, когда я вызываю [tableView reloadData]; cellForRowAtIndexPath никогда не вызывается.

Я надеюсь, что кто-то может помочь мне с этой проблемой, я работаю над этой проблемой около 12 часов безуспешно. Я исчерпал кнопку поиска на нескольких сайтах ....

FYI: -Table View подключен в Интерфейсном Разработчике.

- Мои таблицы загружаются одна за другой через TableViewCells, следуя примеру Apple, начиная со страницы 51 Руководства по программированию табличного представления.

Дополнительный код:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return 17;
}

Спасибо за помощь

Ответы [ 2 ]

0 голосов
/ 19 сентября 2011

Теперь все работает ... Это было потрачено много времени с моей стороны ...

- (void)applicationWillEnterForeground:(UIApplication *)application
{
[_mainViewController refresh];
[_mainViewController.tableView reloadData];
}

- (void)refresh {
Parser *xmlParser = [[Parser alloc] init];
[xmlParser parseRssFeed:@"http://www.somesite.com/file.xml" withDelegate:self];
[xmlParser release];
[self.tableView reloadData];
}
0 голосов
/ 18 сентября 2011

У вас есть пример кода?

Мои первые идеи:

  • Источник данных не подключен
  • Строки в разделе возвращают 0
  • Секции возвращают 0
...