Ir para conteúdo
Visualizar no app

Uma forma melhor de navegar. Saiba mais.

MM Fórum

Um app em tela cheia na sua Tela de Início com notificações push, avisos e mais.

Para instalar este app no iOS/iPadOS
  1. Toque no ícone de Compartilhamento no Safari
  2. Role o menu e toque em Adicionar à Tela de Início.
  3. Toque em Adicionar no canto superior direito.
Para instalar este app no Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Atualizar duas View Controller ao mesmo tempo

Featured Replies

Postado

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

  • Respostas 4
  • Visualizações 1k
  • Criado
  • Última resposta

Top Postadores Neste Tópico

Postado

Boa Noite Rai,

Faz o seguinte, na sua View de detalhe, cria uma Property que receberá o valor do calculo.

Quando você instanciar a View Detalhe (para ser exibida), basta você valorizar esta property com o resultado do calculo.

Postado
  • Autor

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

  • 2 semanas depois...
Postado

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.

Postado

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.

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…

Quem Está Navegando 0

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

Conta

Navegação

Buscar

Buscar

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.