2010-01-20 9 views
8

Sto scrivendo una finestra di chat IMphone ora.quando editButtonItem ha fatto clic, nessuna icona di eliminazione rossa mostra

Si sa se nagviationItem.rightBarItem in un UITableviewController è impostato su editButtonItem, si fa clic sul pulsante di modifica, quindi viene visualizzata un'icona di eliminazione rossa su ogni singola riga, like shown here.

Il problema è, ho un'UIViewController invece di un UITableViewController:

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

}

e io ho fatto lo stesso per impostare editButtonItem:

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

}

quando faccio clic sul pulsante Modifica, lo red delete icon will not show.

Come posso rendere l'icona di eliminazione rossa visualizzata nel mio ChatUIViewController?

Grazie in anticipo a chiunque possa aiutare. Michael

risposta

39

aggiungere il seguente metodo al vostro tavolo classe di visualizzazione delegato:

- (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

Grazie zillion, ha funzionato perfettamente. La soluzione porta un'altra domanda: Perché il codice precedente non è necessario in una classe che è la classe UITableViewController, ma è necessaria in una classe che sottoclassi UIViewController? La mia intuizione mi dice che la classe UITableViewController chiama setEditing: animated: under the hood. –

+1

La mia opinione è che una vista tabella non è necessariamente l'unica vista modificabile. Facendo parte di un controller di visualizzazione, si possono passare chiamate modificabili a qualsiasi sottoview (come una vista tabella). –

+0

Ha senso. Molte grazie. :) –

Problemi correlati