J'ai un dernier problème qui me tue. Je joue avec un projet plus ancien qui a utilisé la méthode tableView:accessoryTypeForRowWithIndexPath
, dont j'essaye de réécrire l'application sans elle.iphone (objectif-c) erreur de modification d'accessoire
J'ai supprimé la méthode tableView:accessoryTypeForRowWithIndexPath
, mais ma solution ne fonctionne pas encore.
Le problème est que maintenant, quand j'appuie sur le bouton 'Edit' de ma vue DetailViewController, les types d'accessoires 'editing' n'apparaissent pas. Ci-dessous est mon code actuel, et j'ai également inclus le project file pour cela, parce que je suis désespéré pour une solution qui fonctionne.
Ma question est, quel code dois-je changer, pour obtenir l'accessoire à changer, et aucun autre effet. (Je sais que le fonctionne RootViewController, mais comment puis-je obtenir la table DetailViewController pour faire la même chose?)
Cordialement, @norskben
Fichier projet Télécharger:Get it here.
setEditing
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated:animated];
[self.navigationItem setHidesBackButton:editing animated:animated];
[tableView reloadData];
}
cellForRowAtIndexPath
- (UITableViewCell *)tableView:(UITableView *)tblView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
cell.editingAccessoryType = UITableViewCellAccessoryCheckmark;
}
switch(indexPath.section) {
case 0:
cell.textLabel.text = coffeeObj.coffeeName;
break;
case 1:
cell.textLabel.text = [NSString stringWithFormat:@"%@", coffeeObj.price];
break;
}
return cell;
}
fichier de projet Télécharger:Get it here.
Curieusement, votre petit prod dans la bonne direction a tout réglé. Je comparais des échantillons et j'ai trouvé que mon DetailViewController était un UIViewController et non un UITableViewController. (Générateur d'interface j'ai lié la vue avec vue de table, (de la vue initiale)). J'ai fait le changement dans le code et l'interface constructeur puis les accessoires ont fonctionné! La prochaine chose que j'ai faite a été d'ajouter du code pour supprimer les icônes latérales rouges pour aucune suppression de ligne, et le dernier morceau du puzzle était l'ajout de self.tableView.allowsSelectionDuringEditing = YES; // dés-ajouté dans viewDidLoad. Merci beaucoup. – oberbaum