Dans beaucoup d'applications iPhone, je vois un UITableViewController utilisé comme liste de cases à cocher. (Voir, pour un exemple de ce que je veux dire, Auto-Lock sous Paramètres)Sélection d'un élément par défaut lors de l'utilisation de UITableViewController comme liste de cases à cocher
En essayant de l'implémenter moi-même, j'ai dû passer par beaucoup de cerceaux pour avoir un élément sélectionné par programme par défaut (ie. , la valeur actuelle pour ce que la liste représente). Le mieux que j'ai pu trouver est en redéfinissant la méthode viewDidAppear selon moi classe contrôleur:
- (void)viewDidAppear:(BOOL)animated {
NSInteger row = 0;
// loop through my list of items to determine the row matching the current setting
for (NSString *item in statusItems) {
if ([item isEqualToString:currentStatus]) {
break;
}
++row;
}
// fetch the array of visible cells, get cell matching my row and set the
// accessory type
NSArray *arr = [self.tableView visibleCells];
NSIndexPath *ip = [self.tableView indexPathForCell:[arr objectAtIndex:row]];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:ip];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
self.lastIndexPath = ip;
[super viewDidAppear:animated];
}
Est-ce le meilleur/seulement/meilleure façon d'obtenir une référence à une cellule particulière et indexPath si Je veux marquer une ligne par défaut?
Vous voyez, j'ai pensé que j'étais stupide avec ce code. Lent cerveau aujourd'hui: P – Dana