Ophychius 使用通知的建议是正确的。我假设您在 XML 完成加载后更新了表格视图的所有数据源。这也假设您使用的是动态单元格。在加载 XML 的类中,在新 XML 完成加载时发布通知。
[[NSNotificationCenter defaultCenter] postNotificationName:@"XMLLoaded" object:nil];
在表视图类中,注册为您从 XML 类发布的通知的观察者。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadTable:) name:@"XMLLoaded" object:nil];
如您所见,当收到此通知时,它会调用选择器。要么调用构建表的方法,要么创建另一个简单的方法来调用 reloadData。
-(void)reloadTable:(NSNotification *)notif
{
NSLog(@"In ReloadTable method. Recieved notification: %@", notif);
[self.tableView reloadData];
}
最后(正如莱昂纳多在下面指出的),在您的 viewDidUnload(或 ios6 的 dealloc)方法中,删除该类作为该通知的观察者。
- (void)viewDidUnload
{
[super viewDidUnload];
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}