J'ai un dictionnaires de couple dans une liste de propriétés, qui constituent un système de menu pour mon jeu, comme si:iPhone - NSDictionary à NSArray avec préservé pour
New game
Easy
Normal
Hard
Load game
Recent
Older
Options
Game
Sound
etc .. Chaque élément de cette La liste est un dictionnaire. J'utilise UINavigationController et UITableViews pour afficher ce système de menus. Lorsqu'un élément est choisi, un nouveau UITableViewController est poussé dans UINavigationController, avec les éléments de cet élément choisi. Par exemple, le premier UITableView contient "New Game", "Load game", et "Options" dans son dictionnaire. Si l'utilisateur sélectionne des options, un nouveau UITableViewController est créé avec les éléments "Game" et "Sound" (c'est-à-dire le dictionnaire de "Options").
Je renseignez la UITableView de cette façon:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] init] autorelease];
}
// Set up the cell...
cell.text = [[[data keyEnumerator] allObjects] objectAtIndex:indexPath.row];
// Data is the dictionary..
return cell;
}
Mais apparemment, qui cause les éléments à ne pas venir dans le même ordre que sont définis dans la liste des propriétés.
Est-ce que quelqu'un sait comment préserver l'ordre quand je fais ce que j'essaie de faire?
Merci.
Mais vraiment, donnez à chaque contrôleur de vue un NSArray distinct avec ses options correspondantes. N'utilisez pas un dictionnaire imbriqué –
Merci. Ce que j'ai fini par faire était d'avoir une série de dictionnaires. Chaque dictionnaire a un champ de titre et un champ d'options, où les options sont un nouveau tableau avec plus de ces dictionnaires. – quano