Quando abro um UIView personalizado de uma UITableViewController, como faço para fechar a exibição personalizada e voltar para a exibição de tabela?

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

Pergunta

Eu estou usando um UITableViewController para um menu em um jogo. A exibição de tabela abre um controlador de uma visão para o meu UIView personalizado que mostra o jogo. Quando o jogo termina o UIView é notificado (que é kinda arruinar os princípios MVC) e de lá eu estou meio perdido.

Perguntas:

  1. Pode um UIView comunicar com seu controlador? Como?
  2. Can um controlador de falar com aquele que começou? Como?
  3. Como fazer a transição I entre toda esta teia complicada de pontos de vista e os controladores graciosamente?
Foi útil?

Solução

  1. Use um protocolo de delegado aqui. Seu UIView jogo personalizado pode usar uma propriedade delegate e métodos de compra sobre este delegado, quando os eventos acontecem (jogo sobre, jogo pausado, vista fechada, etc). Aqui está um ótimo post sobre o uso de delegados: Como eu crio delegados em Objective- C?

  2. Eu recomendo usar um UINavigationController. Você não necessariamente precisa mostrar a barra de navegação, mas se você aninhar seus vista controladores em um controlador de navegação você tem acesso a -pushViewControllerAnimated: e -popViewControllerAnimated: o que torna muito fácil para navegação entre os níveis de controladores de vista aninhadas.

  3. Outro benefício do UINavigationController -. Você vai ter uma agradável animação slide quando você alternar entre as vistas

Existem outros mecanismos 3rd party lá fora, que você pode preferir mais os mecanismos UIKit UINavigationController / UIViewController. Confira o projeto Three20 , em particular a classe TTNavigationCenter.

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