Domanda

Sto progettando e codificando un'applicazione per iPhone per visualizzare i tempi dei film. Attualmente ho una lezione di film che contiene:

  • NSString title
  • NSSDate releaseDate
  • NSSDate score

La mia interfaccia utente è un semplice UINavigationController che ha un controllo segmentato in quanto titolo e UITableView per visualizzare l'impostazione Film in Interface Builder. Il controllo segmentato ha 3 segmenti: titolo, data di apertura e punteggio (su RottenTomatoes). I dati per la vista tabella sono attualmente forniti da un NSMutableArray movies che è una proprietà del delegato App.

So che posso registrare le azioni target usando il seguente codice, ma non sono sicuro di come ordinare i UISegmentedControl dati a questo punto:

[segmentedControl addTarget:self action:@selector(action:) forControlEvents:UIControlEventValueChanged];

Come e dove posso ricorrere al <=> ogni volta che <=> il segmento selezionato cambia?

È stato utile?

Soluzione

Inoltre, puoi ordinare i dati con uno qualsiasi dei metodi sortArrayUsing xxx in NSArray.

Altri suggerimenti

È possibile inserire un po 'di logica nel metodo tableView:cellForRowAtPath: dell'origine dati per verificare il valore corrente di UISegmentedControl e modificare la cella restituita per ogni riga come appropriato. Quindi, ogni volta che cambia il valore del controllo segmentato, tutto ciò che devi fare è chiamare

[tableView reloadData];

e sei pronto.

Ho un controllo di segmento che può ordinare / filtrare gli articoli in tre modi diversi - poiché il numero di articoli è diverso a seconda del filtro / ordine Uso 3 oggetti NSArray diversi per contenere gli elenchi ordinati.

Quindi quando carico i dati ne metto una versione nella posizione corretta in ogni array (o no nell'array a seconda del filtro).

Ho una chiamata per ottenere l'array che utilizza lo stato del controllo segmentato per decidere quale array restituire.

Il metodo che chiama un array viene usato al posto di un array normale e questo significa che tutto ciò che devo fare per cambiare le cose quando viene cambiato un controllo segmentato è chiamare [tableView reloadData] e tutto è fatto per me.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top