20.04.2013 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!