Question

Je suis en train de concevoir et de coder une application iPhone pour afficher les horaires des films. J'ai actuellement une classe de film qui contient:

  • NSString title
  • NSSDate releaseDate
  • NSSDate score

Mon interface utilisateur est un simple UINavigationController qui a un contrôle segmenté en tant que titre et UITableView pour afficher la configuration des séquences dans Interface Builder. Le contrôle segmenté a 3 segments: Titre, Date d'ouverture et Score (sur RottenTomatoes). Les données de la vue tabulaire sont actuellement fournies par un NSMutableArray movies qui est une propriété de AppDelegate.

Je sais que je peux enregistrer des actions cibles à l'aide du code suivant, mais je ne sais pas comment trier les UISegmentedControl données à ce stade:

[segmentedControl addTarget:self action:@selector(action:) forControlEvents:UIControlEventValueChanged];

Comment et où dois-je recourir au <=> chaque fois que le <=> segment sélectionné est modifié?

Était-ce utile?

La solution

De plus, vous pouvez trier les données avec l’une des sortArrayUsing méthodes xxx dans NSArray.

Autres conseils

Vous pouvez définir une logique dans la méthode tableView:cellForRowAtPath: de la source de données pour vérifier la valeur actuelle de UISegmentedControl et modifier la cellule renvoyée pour chaque ligne, le cas échéant. Ensuite, chaque fois que la valeur du contrôle segmenté change, il vous suffit d'appeler

[tableView reloadData];

et vous êtes tous ensemble.

J'ai un contrôle de segment qui peut commander / filtrer les éléments de trois manières différentes, car le nombre d'éléments varie en fonction du filtre / de la commande. J'utilise 3 objets NSArray différents pour contenir les listes triées.

Ainsi, lorsque je charge les données, j'en mets une version au bon endroit dans chaque tableau (ou pas dans le tableau en fonction du filtre).

J'ai un appel à obtenir le tableau qui utilise l'état du contrôle segmenté pour décider quel tableau renvoyer.

La méthode qui appelle un tableau est utilisée à la place d'un tableau normal et cela signifie que tout ce que je dois faire pour changer les choses lorsqu'un contrôle segmenté est modifié est d'appeler [tableView reloadData] et que tout est fait pour moi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top