Ir para conteúdo
  • Cadastre-se

Atualizar duas View Controller ao mesmo tempo


Posts Recomendados

Olá pessoal!

Estou começando agora com o desenvolvimento para iOS e estou com uma dúvida... Na verdade pode ser apenas a forma errada que estou fazendo, então podem me corrigir se eu falar alguma bobeira :P

Estou fazendo um app bem simples que tem duas ViewController. Na primeira view (calculo) há alguns inputs que, quando modificados, alteram o valor de um label de resultado.

Até aí ok. O problema é que na view de cálculo há um botão que chama a view de detalhe. Nessa view (detalhe) eu queria que já trouxesse o resultado da view anterior.

As duas views estão usando a mesma classe. Tentando atualizar o label da view de resultado, o XCode não me retorna nenhum erro, mas também não atualiza a label.

Alguém sabe alguma forma de fazer isso? Talvez alguma forma de chamar passando um parâmetro?

Obrigado e desculpem se estiver fazendo algo muito errado! hahahahah :D

Link para o comentário
Compartilhar em outros sites

  • Respostas 4
  • Criado
  • Última resposta

Top Postadores Neste Tópico

E aí Thiago - valeu pela resposta!

Então, na verdade eu já tenho uma property para receber o valor do cálculo, mas não estou conseguindo atribuir. Quando eu verifico no log, a property da outra View fica sempre nula (Talvez algo referente a desalocamento pq a view não está em uso?)

O que eu estava tentando fazer era atribuir o valor do resultado da view de cálculo para a view de detalhamento, mas ela sempre fica nula.

E o mesmo acontece quando vou para a view de detalhe, os valores da view de cálculo tornam-se nulos.

O que eu precisava era conseguir manter esse valor de alguma forma entre a navegação das Views

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Põe código aí pq ainda não conseguir visualizar direito o q vc está fazendo. Há um jeito simples de fazer isso q vc está fazendo, caso eu tenha entendido, que é com Storyboards. Quando vc aperta o botão, vc passa o resultado como parâmetro para a próxima tela e pronto. Se os seus dois ViewControllers são coisas diferentes, o ideal é que eles sejam representados por classes diferentes... isso é apenas a minha sugestão. Isso faz parte das boas práticas de programação.

Caso, vc não queira fazer isso, acho q o problema é que vc não está fazendo a ligação correta da sua property... pelo IB vc facilmente consegue conectar a sua property com algum elemento visual com ctrl + arraste para o seu código (no .h). Ainda não sei se esse é realmente o seu problema. De qualquer forma aí segue um exemplo:

- (NSString*)fazCalculo:(TipoParametro)x {

// faz o calculo aqui

return [NSString stringWithFormat:@"Resultado: %d", resultadoCalculado];

}

... em algum lugar, vc chama o método acima para preencher o label ...

self.myLabel.text = [self fazCalculo:myX];

... mas para q esse resultado seja exibido na tela, esse myLabel tem que estar ligado a um label na sua interface.

Dê mais detalhes aí para ver se a gente ajuda.

Abraços.

Link para o comentário
Compartilhar em outros sites

Essa sua property provavelmente é direto o outlet pra UILabel, acontece que vc está setando o valor antes que a view tenha sido carregada e portanto, o UILabel ainda nao foi instanciado.

Troque essa property de UILabel por um NSString ou NSNumber. Sete o valor nele e na classe Detalhe, no evento viewDidLoad vc seta o texto do label como sendo o valor dessa nova property.

Link para o comentário
Compartilhar em outros sites

Participe do debate

Você pode postar agora e se registrar depois. Se você tem uma conta, entre agora para postar com ela.

Visitante
Responder este tópico…

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Limpar editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.



×
×
  • Criar Novo...