J'ai une charge de mal à trouver comment faire cela,Création Drill-Down Détail UITableView de JSON NSDictionary
Je veux montrer dans un UITableDetailView (style Drill-Down) avec chaque élément dans un cellule différente. Toutes les choses que j'ai lues montrent comment charger une seule image sur le détail au lieu de l'afficher comme UITableView. Est-ce que le dictionnaire doit avoir des "enfants" pour charger correctement? Voici le code de la première vue créant * dict à partir de JSON rowsArray.
Je suppose que ce que je cherche est ce qu'il faut mettre dans le FollowDetailViewController.m pour voir le reste du contenu * dict, donc lors de la sélection d'une ligne, il charge le reste de la * dict.
Je rowsArray revenir comme suit:
« {LOGINNAME = Johnson;
memberid = 39;
nom = Kris;
age =;}, etc, etc ...
Merci,
// SET UP TABLE & CELLULES
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}
NSDictionary *dict = [rowsArray objectAtIndex: indexPath.row];
cell.textLabel.text = [dict objectForKey:@"name"];
cell.detailTextLabel.text = [dict objectForKey:@"loginName"];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
- (void)viewDidLoad {
[super viewDidLoad];
//GET JSON FROM WEBSERVICES:
NSURL *url = [NSURL URLWithString:@"http://10.0.1.8/~imac/iphone/jsontest.php"];
NSString *jsonreturn = [[NSString alloc] initWithContentsOfURL:url];
NSData *jsonData = [jsonreturn dataUsingEncoding:NSUTF32BigEndianStringEncoding];
NSError *error = nil;
NSDictionary * dict = [[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData error:&error];
if (dict)
{
rowsArray = [dict objectForKey:@"member"];
[rowsArray retain];
}
[jsonreturn release];
}
//GO TO DETAIL VIEW:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
FollowingDetailViewController *aFollowDetail = [[FollowingDetailViewController alloc] initWithNibName:@"FollowingDetailView" bundle:nil];
[self.navigationController pushViewController:aFollowDetail animated:YES];
}
Merci, je suis penché vers votre méthode sur les deux points, Après avoir obtenu la table chargée, j'allais enregistrer la matrice à un .plist pour la persistance et recharger à partir de là lors du lancement. vérifier pour voir si les données étaient disponibles. Je peux enregistrer et utiliser le modèle objet JSON à la place, correct? –
Je veux juste dire un objet modèle comme un nsObject générique adapté à vos besoins. Vous pourriez persister à plist, sqllite, données de base etc. – Nick