0

在用户登录到应用程序之后,我正在尝试使用来自 web 服务的特定用户(他的项目)的数据填充 UITableView。

例如:

tableData = [[NSMutableDictionary alloc] initWithCapacity:DICTIONARY_INITIAL_CAPACITY];
//CURRENT PROJECT
 //get the information from the server
 NSArray *currentProject = [[IHMObjectFinderServices sharedIHMObjectFinderServices]     getCurrentProjectAsArray:connectedUserId];
 if(![currentProject isEqual:[NSNull null]]) {
     //put the info in a dictionnary
     NSMutableDictionary *currentProjectDictionary = [[NSMutableDictionary alloc] initWithCapacity:PROJECT_DICTIONARY_CAPACITY];
     [currentProjectDictionary setObject:[currentProject objectAtIndex:INDEX_PROJECT_NAME] forKey:KEY_PROJECT_NAME];
     [currentProjectDictionary setObject:[currentProject objectAtIndex:INDEX_PROJECT_MANAGER] forKey:KEY_PROJECT_MANAGER];
     [currentProjectDictionary setObject:[currentProject objectAtIndex:INDEX_PROJECT_TAG] forKey:KEY_PROJECT_TAG];
     NSArray *activitiesForProject = [NSArray arrayWithArray:[[IHMObjectFinderServices sharedIHMObjectFinderServices] getAvailableActivities:[currentProjectDictionary valueForKey:KEY_PROJECT_TAG]]];
     [currentProjectDictionary setObject:activitiesForProject forKey:KEY_PROJECT_ACTIVITIES];

     [tableData setObject:currentProjectDictionary forKey:KEY_CURRENT_PROJECT];

目前,我的表在 viewDidLoad 方法中加载,所以问题是在构建表时用户尚未连接。

我已阅读有关 reloadData 方法的信息,但我不确定如何在用户登录后仅加载一次表。有人可以向我解释一下正确的程序是什么吗?

谢谢你的帮助,迈克尔

4

1 回答 1

0

当 tableView 的数据可用时,应该有某种回调方法。只需将您的 reloadData 放入其中即可。

- (void)dataIsAvailable
{
     // ... your code to set the tableData ...

     [self.tableView reloadData];
}
于 2011-04-19T08:19:15.990 回答