Je tabController application avec uitableview obtenir des données NSURLconnection et en essayant de l'afficher. Je ne peux pas comprendre le problème. Si je remplace la connexion par un tableau, je stocke tous les travaux, mais la mise à jour ne fonctionne pas, donc je pense que la fin de la table est bonne. MAIS:rechargement d'une tableview lorsque la source est NSURLConnection et obtient de nouvelles données
Si je mets [[self.tableview] reloadData]; dans le - (void) connectionDidFinishLoading:
Cela provoque une boucle de ma ligne parente sur la vue. Lorsque vous sélectionnez une ligne, elle se repeuple avec la même ligne "Titre" et non l'enfant. Si je supprime le [[self.tableview] reloadData]; La tableDataSource3 est vide et n'est pas rafraîchie avec les données d'URL. J'en ai donc besoin. J'ai NSLogs qui montre la mise à jour, donc je sais qu'elle est mise à jour.
Si je mets [[self.tableview] reloadData]; dans le ViewDidAppear:
la vue est vide jusqu'à ce que je quitte la table et revienne en arrière (l'application est un tabcontroller avec tableViews). Si j'ajoute une ligne dans la base de données et que je la mets à jour via une connexion NSURL, la tableView reste telle quelle, mais si je sélectionne une ligne, les nouvelles données mises à jour apparaissent dans la table poussée.
Si je mets [[self.tableview] reloadData]; dans le ViewWillAppear:
la vue est vide jusqu'à ce que je sorte de la table et de retour. cependant, la vue enfant poussée est vide.
Des idées?
est ici la fin du NSURLConnection meth
-(void) connectionDidFinishLoading:(NSURLConnection *)conn3 {
~ JSON STUFF~
NSArray *test = [json objectForKey:@"Rows"];
tableDataSource3 = [[NSArray alloc] initWithArray:test];
[json release];
[conn3 release];
self.receivedData =nil;
[[self tableview] reloadData];
}
Voici la méthode de sélection:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//Get the dictionary of the selected data source.
NSDictionary *dictionary = [self.tableDataSource3 objectAtIndex:indexPath.row];
//Get the children of the present item.
NSArray *Children = [dictionary objectForKey:@"Children"];
if([Children count] == 0) {
ItemDetailViewController *dvController = [[ItemDetailViewController alloc] initWithNibName:@"ItemDetailView" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:dvController animated:YES];
[dvController release];
}
else {
//Prepare to tableview.
ThirdTab *rvController = [[ThirdTab alloc] initWithNibName:@"SecondView" bundle:[NSBundle mainBundle]];
rvController.CurrentLevel3 += 1;
rvController.CurrentTitle3 = [dictionary objectForKey:@"Title"];
[self.navigationController pushViewController:rvController animated:YES];
rvController.tableDataSource3 = Children;
[rvController release];
}
}
@ Jordan Oui la NSURL commence dans le viewDidLoad –
@ Jordan J'ai la reloadData qu'une seule fois à la fin de la connectionDidFinishLoading. ajouter le soi était une bonne idée mais j'ai le même résultat. thx –
J'ai le sentiment que l'ensemble de didselectRowatIndexPath est incorrect pour un appel reloadData. J'ai posté une nouvelle question. –