Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

megaOi

Chamar view controller

Recommended Posts

Pessoal,

Boa Noite!

 

Eu desenvolvi uma animação no XCODE e quando acabar essa animação preciso chamar uma view controller, mas não estou conseguindo chamar a view quando acaba a animação, só consigo chamar segurando o control e arrastando para tela, como que faço para chamar ela via código. Alguém manja?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi direito o que pretende..

mas acho que você quer chamar um controller incluindo o Nib, dinamicamente, certo?

 

 

Para chamar um UIViewController como um subview

UIViewController *vController = [[NSClassFromString(@"yourClassName") alloc] initWithNibName:@"yourNibName" bundle:nil];
[self.view addSubview:vController.view];

 

obs: Essa técnica não necessita incluir o header da classe.

Note que o controller estará sob hierarquia da view que o carregou, possibilitando acesso aos objetos de ambos, exceto ao acesso dos métodos e propriedades.

 

exemplo

#import "yourClassName.h"

, não é necessário, pois é carregado dinamicamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade quero chamar outra View Controller.

Como se desse um Response.Redirect("OutraView"); (.Net)! rs

 

E meu projeto é em storyboard.

Sabe como faço isso?

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

então.. uma das alternativas é o que postei.

Nesse caso abrirá o controller dentro de um subview.

 

Caso queira chamar o controller num modelView, segue a mesma lógica.

 

Nesse caso deve importar o header file:

#import "yourClassName.h"

 

Para abrir, deve instaciar a classe:

 

yourClassName* obj = [yourClassName alloc] initWithNibName:@"yourNibName" bundle:nil];
obj.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; // faz o efeito flip (opcional)
[self presentModalViewController:obj animated:YES];

 

 

 

Caso queira puxar num navigationController:

 

#import "yourClassName.h"

 

yourClassName* obj = [yourClassName alloc] initWithNibName:@"yourNibName" bundle:nil];
[self.navigationController pushViewController:obj animated:YES];

Compartilhar este post


Link para o post
Compartilhar em outros sites

No meu caso é um storyboard eu não tenho um NibName, certo?

 

Eu fiz assim:

 

MinhaClasse *obj = [[MinhaClasse alloc] init];
obj.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:obj animated:YES];

 

Ele fez o efeito, porém quando foi passar para outra tela ficou black! :S

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se está usando StoryBoard, defina um identificador para o UIViewController.

Chame o controller pelo identificador. Nesse exemplo "yourClassNameIdentifier"

 

yourClassName *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"yourClassNameIdentifier"];

[self.navigationController pushViewController:controller animated:YES];

esse exemplo puxa para o "navigationController".

 

se quiser abrir num modal ou como um subview, veja os exemplos acima e faça a adaptação conforme o seu caso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pow hinom, vou testar no projeto que estou desenvolvendo, mas em um projeto teste que fiz deu certo!

Logo volto aqui para falar o que aconteceu, mas desde já, obrigado!

 

Himon,

Trocou a página no meu projeto, porém da um erro, veja:

 

2012-08-31 14:17:19.685 canaisIpad[81542:11f03] -[Menu ViraPagina]: unrecognized selector sent to instance 0x7c63cf0

2012-08-31 14:17:19.686 canaisIpad[81542:11f03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Menu ViraPagina]: unrecognized selector sent to instance 0x7c63cf0'

*** First throw call stack:

(0x1e2b022 0x1113cd6 0x1e2ccbd 0x1d91ed0 0x1d91cb2 0xbb2eb6 0x1dff936 0x1dff3d7 0x1d62790 0x1d61d84 0x1d61c9b 0x170c7d8 0x170c88a 0x276626 0x27ad 0x2715)

terminate called throwing an exception(lldb)

 

Sabe o que pode ser?

 

Abs

 

Himon,

Fiz assim:

Classe *obj = [self.storyboard instantiateViewControllerWithIdentifier:@"Nome"];
obj.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:obj animated:YES];

 

e funcionou perfeitamente!

 

Obrigado pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra possibilidade é usar o método performSegueWithIdentifier:. Veja:

http://www.techotopia.com/index.php/Using_Xcode_Storyboarding_(iPhone_iOS_5)

 

O resultado será o mesmo, mas a ligação entre as views fica explícita na storyboard

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.