Como é que se projetar a fonte de dados para um UITableView, a fim de tipo com um UISegmentedControl?

StackOverflow https://stackoverflow.com/questions/1050381

Pergunta

Eu estou no processo de concepção e codificação de um aplicativo para iPhone para tempos de filme display. Eu tenho atualmente um Classe filme que contém:

  • NSString title
  • NSSDate releaseDate
  • NSSDate score

Meu UI é uma UINavigationController simples que tem um controle segmentado como do título e UITableView para exibir a configuração Filmes no Interface Builder. O controle segmentada tem 3 segmentos: Título, Data de Abertura, e Pontuação (em RottenTomatoes). Os dados para a exibição de tabela é actualmente assegurada por um NSMutableArray movies que é uma propriedade do AppDelegate.

Eu sei que posso registar acções orientadas usando o seguinte código, mas não tenho certeza de como classificar os dados UITableView neste ponto:

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

Como e onde posso recorrer a UITableView sempre que o UISegmentedControl selecionado alterações do segmento?

Foi útil?

Solução

Além disso, você pode classificar os dados com qualquer um dos métodos sortArrayUsingxxx em NSArray.

Outras dicas

Você pode colocar alguma lógica no método tableView:cellForRowAtPath: da fonte de dados para verificar o valor atual do UISegmentedControl e alterar a célula retornou para cada linha, conforme apropriado. Então, sempre que o valor das alterações de controle segmentados, tudo que você tem a fazer é chamar

[tableView reloadData];

e você está tudo definido.

Eu tenho um controle segmento que itens fim lata / filtro de três maneiras diferentes -. Porque o número de itens é diferente dependendo do filtro / fim Eu uso 3 diferentes NSArray objetos para manter as listas ordenadas

Então, quando eu carregar os dados eu coloquei uma versão dele no lugar correto em cada array (ou não na matriz dependendo do filtro).

Eu tenho uma chamada para obter a matriz que usa o estado do controle segmentado para decidir qual matriz para retorno.

O método que chama uma matriz é usado no lugar de uma matriz normal e tudo o que tenho que fazer para mudar as coisas quando um controle segmentado for alterada isto significa é chamada [tableView reloadData] e tudo é feito para mim.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top