Forums
New posts
Articles
Product Reviews
Policies
FAQ
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Menu
Log in
Register
Install the app
Install
Forums
macOS & iOS Developer Playground
iOS Development
Como chamar uma nova viewController através do clique de um botão dinâmico>
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="lftapajos" data-source="post: 1364281" data-attributes="member: 236622"><p>A minha dúvida é a seguinte:</p><p></p><p>Eu possuo uma scrollView anode eu crio botões programaticamente e neles adiciono imagens. Estes botões tem a aparência de imagens criadas aleatoriamente.</p><p></p><p>Para saber em qual botão eu cliquei, eu utilizo:</p><p></p><p>######################################</p><p></p><p>for (int i=1; i<7; i++)</p><p>{</p><p> UIButton *botao = [[UIButton buttonWithType:UIButtonTypeCustom] retain];</p><p> botao.frame = CGRectMake((i-1)*199, 0, 199, 169);</p><p> botao.backgroundColor = [UIColor whiteColor];</p><p> [botao setBackgroundImage<img src="/mac_images/images/smilies/Embarrassed.png" class="smilie" loading="lazy" alt=":[" title="Embarrassed :[" data-shortname=":[" />UIImage imageNamed<img src="/mac_images/images/smilies/Embarrassed.png" class="smilie" loading="lazy" alt=":[" title="Embarrassed :[" data-shortname=":[" />NSString stringWithFormat<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite4" alt=":mad:" title="Mad :mad:" loading="lazy" data-shortname=":mad:" />"imagem%d.jpg", i]] forState:UIControlStateNormal];</p><p></p><p> botao.tag = i;</p><p></p><p> [botao addTarget:self action<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite4" alt=":mad:" title="Mad :mad:" loading="lazy" data-shortname=":mad:" />selector(chamaProximaViewController<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile :)" loading="lazy" data-shortname=":)" /> forControlEvents:UIControlEventTouchUpInside];</p><p></p><p> [botao release];</p><p>}</p><p></p><p>######################################</p><p></p><p></p><p>Então eu chamo uma função pelo clique do botão:</p><p></p><p> [botao addTarget:self action<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite4" alt=":mad:" title="Mad :mad:" loading="lazy" data-shortname=":mad:" />selector(chamaProximaViewController<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile :)" loading="lazy" data-shortname=":)" /> forControlEvents:UIControlEventTouchUpInside];</p><p></p><p></p><p>E então esta função tem o objetivo de identificar o clique e chamar outra view Controller:</p><p></p><p>######################################</p><p></p><p>#import "ProximaViewController.h"</p><p></p><p>-(IBAction)chamaProximaViewController<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite3" alt=":(" title="Frown :(" loading="lazy" data-shortname=":(" />id)sender</p><p>{</p><p> UIButton *clicado = (UIButton *) sender;</p><p> NSLog(@"Clicou no nº %d",clicado.tag);</p><p> </p><p> ProximaViewController *proximaViewController = [[ProximaViewController alloc] init];</p><p> proximaViewController.propriedadeTipoInt = clicado.tag; //1,2,3,4…</p><p> [proximaViewController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];</p><p> [self presentModalViewController<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite7" alt=":p" title="Stick out tongue :p" loading="lazy" data-shortname=":p" />roximaViewController animated:YES];</p><p>}</p><p></p><p>######################################</p><p></p><p>O problema é que quando eu executo a aplicação e clico no botão respectivo, a próxima view é importada, ocorre o flip horizontal, e aparentemente a view é chamada. Porém a tela FICA ESCURA. Como se nenhum dos objetos da tela estivessem aparecendo. Como se TUDO TIVESSE SUMIDO.</p><p></p><p>Coloquei alguns NSLogs na "proximaViewController" para saber se a "ProximaViewController" está sendo chamada. E está! Funciona! O problema é que tudo é carregado, mas nenhum objeto da tela é mostrado.</p><p></p><p>OBS: Eu possuo outras chamadas para a "proximaViewController" que funcionam através de "Segues". Mas neste caso, como os botões são criados dinamicamente, eu não posso criar "Segues" para isso.</p><p></p><p>Como eu faço então, para fazer com que os objetos da "proximaViewController" não sumam quando eu carregar a "proximaViewController" pela função "chamaProximaViewColler"?</p></blockquote><p></p>
[QUOTE="lftapajos, post: 1364281, member: 236622"] A minha dúvida é a seguinte: Eu possuo uma scrollView anode eu crio botões programaticamente e neles adiciono imagens. Estes botões tem a aparência de imagens criadas aleatoriamente. Para saber em qual botão eu cliquei, eu utilizo: ###################################### for (int i=1; i<7; i++) { UIButton *botao = [[UIButton buttonWithType:UIButtonTypeCustom] retain]; botao.frame = CGRectMake((i-1)*199, 0, 199, 169); botao.backgroundColor = [UIColor whiteColor]; [botao setBackgroundImage:[UIImage imageNamed:[NSString stringWithFormat:@"imagem%d.jpg", i]] forState:UIControlStateNormal]; botao.tag = i; [botao addTarget:self action:@selector(chamaProximaViewController:) forControlEvents:UIControlEventTouchUpInside]; [botao release]; } ###################################### Então eu chamo uma função pelo clique do botão: [botao addTarget:self action:@selector(chamaProximaViewController:) forControlEvents:UIControlEventTouchUpInside]; E então esta função tem o objetivo de identificar o clique e chamar outra view Controller: ###################################### #import "ProximaViewController.h" -(IBAction)chamaProximaViewController:(id)sender { UIButton *clicado = (UIButton *) sender; NSLog(@"Clicou no nº %d",clicado.tag); ProximaViewController *proximaViewController = [[ProximaViewController alloc] init]; proximaViewController.propriedadeTipoInt = clicado.tag; //1,2,3,4… [proximaViewController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal]; [self presentModalViewController:proximaViewController animated:YES]; } ###################################### O problema é que quando eu executo a aplicação e clico no botão respectivo, a próxima view é importada, ocorre o flip horizontal, e aparentemente a view é chamada. Porém a tela FICA ESCURA. Como se nenhum dos objetos da tela estivessem aparecendo. Como se TUDO TIVESSE SUMIDO. Coloquei alguns NSLogs na "proximaViewController" para saber se a "ProximaViewController" está sendo chamada. E está! Funciona! O problema é que tudo é carregado, mas nenhum objeto da tela é mostrado. OBS: Eu possuo outras chamadas para a "proximaViewController" que funcionam através de "Segues". Mas neste caso, como os botões são criados dinamicamente, eu não posso criar "Segues" para isso. Como eu faço então, para fazer com que os objetos da "proximaViewController" não sumam quando eu carregar a "proximaViewController" pela função "chamaProximaViewColler"? [/QUOTE]
Verification
Post reply
Forums
macOS & iOS Developer Playground
iOS Development
Como chamar uma nova viewController através do clique de um botão dinâmico>
Top