2010-01-20 3 views
8

Je suis en train d'écrire une fenêtre de discussion IPhone IM.lorsque vous cliquez sur le bouton editButtonItem, aucune icône de suppression rouge n'affiche

Vous savez si le nagviationItem.rightBarItem dans un UITableviewController est défini sur editButtonItem, vous cliquez sur le bouton d'édition puis une icône de suppression rouge s'affiche sur chaque ligne, like shown here.

Le problème est, j'ai un UIViewController au lieu d'un UITableViewController:

@interface ChatUIViewController : UIViewController<UITableViewDelegate,UITableViewDataSource>{ 
    UITableView *table; 
    UITextField *textField; 

}

et je l'ai fait même de mettre editButtonItem:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.navigationItem.rightBarButtonItem = self.editButtonItem; 

}

quand je clique sur le bouton Modifier, le red delete icon will not show.

Comment puis-je faire apparaître l'icône de suppression rouge dans mon ChatUIViewController?

Merci d'avance à tous ceux qui pourraient vous aider. Michael

Répondre

39

Ajoutez la méthode suivante à votre vue Table classe déléguée:

- (void) setEditing:(BOOL)editing animated:(BOOL)animated { 
    [super setEditing:editing animated:animated]; 
    [self.tableView setEditing:editing animated:animated]; 
    if (editing) { 
     // you might disable other widgets here... (optional) 
    } else { 
     // re-enable disabled widgets (optional) 
    } 
} 
+0

Merci un zillion, il a parfaitement fonctionné. La solution mène une autre question: Pourquoi le code ci-dessus n'est pas nécessaire dans une classe qui est classe UITableViewController, mais est nécessaire dans une classe qui sous-classe le UIViewController? Mon intuition me dit les appels de classe UITableViewController setEditing: animated: under the hood. –

+1

Mon avis est qu'une vue de table n'est pas nécessairement la seule vue éditable. En faisant partie d'un contrôleur de vue, vous pouvez passer des appels modifiables à n'importe quelle sous-vue (comme une vue de table). –

+0

Donne un sens. Merci beaucoup. :) –

Questions connexes