Tutorial pratici per iPhone SDK v1.6 - Get a Free Blog
Tutorial pratici per iPhone SDK v1.6 - Get a Free Blog
Tutorial pratici per iPhone SDK v1.6 - Get a Free Blog
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Se provate ad eseguire l'applicazione noterete che cancellando una riga essa non viene rimossa<br />
dalla tabella. Questo avviene <strong>per</strong>ché non abbiamo ancora concluso di implementare questa<br />
funzionalità. Inseriamo, quindi, il seguente metodo:<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
// Elimina l'elemento dalla tabella e dalla lista<br />
- (void)tableView:(UITableView *)tableView<br />
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle<br />
forRowAtIndexPath:(NSIndexPath *)indexPath {<br />
!<br />
! //controlla se l'azione compiuta è un'eliminazione<br />
! if (editingStyle == UITableViewCellEditingStyleDelete) {<br />
! ! //elimina l'elemento dalla lista<br />
! ! [lista removeObjectAtIndex:indexPath.row];<br />
! ! //elimina le'elemento dalla tabella<br />
! ! [self.tableView deleteRowsAtIndexPaths:[NSArray<br />
arrayWithObject:indexPath]<br />
withRowAnimation:UITableViewRowAnimationFade];<br />
! !<br />
! }<br />
}<br />
Come possiamo notare dalla struttura un po’ complicata, questo è un metodo del protocollo<br />
UITableView, proprio come quello che abbiamo implementato nella prima parte.<br />
Il costrutto if (riga 5) esegue un controllo che, come spiega il commento, controlla se l’azione<br />
eseguita sulla tabella è di cancellazione di una riga. Direte voi: “Cosa posso fare d’altro?” Per<br />
ora niente, <strong>per</strong>ché la nostra tabella supporta solo l’eliminazione di una riga, ma volendo si potrebbe<br />
implementare anche l’inserimento di una nuova riga, oppure altre azioni. È sempre questo<br />
metodo che si occupa di gestire tutte le azioni sulla tabella. Ecco spiegata la necessità di<br />
questo controllo. Tornando al codice, all’interno dell’if possiamo notare due istruzioni, che<br />
eliminano l’elemento sia dalla lista (riga 7) che dalla tabella (riga 9). In questo modo la cancellazione<br />
di una riga è davvero implementata.<br />
RENDIAMO LE CELLE SELEZIONABILI<br />
Vediamo ora di implementare un’altra funzione. Vogliamo che quando l’utente seleziona una<br />
cella appaia un pop-up che contenga il nome dell’elemento selezionato. Ovviamente questa<br />
azione non ha una grande utilità, ma vi <strong>per</strong>metterà di imparare come gestire le selezioni dell’utente<br />
e vedrete, inoltre, come creare un pop-up.<br />
Prima di implementare il metodo necessario, eliminate dal metodo<br />
tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath;<br />
la seguente istruzione (vi ho spiegato nella prima parte a cosa serviva):<br />
1 cell.selectionStyle = UITableViewCellSelectionStyleNone;<br />
altrimenti le celle non saranno selezionabili.<br />
<strong>Tutorial</strong> <strong>pratici</strong> <strong>per</strong> <strong>iPhone</strong> <strong>SDK</strong>! 63