Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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
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];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
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.
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!
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
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
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.