IBAction non viene chiamato in visualizzazione secondaria
Domanda
Io sono la creazione di una semplice applicazione che ti permette di visualizzare i film utente dopo pulsanti di clic. La prima schermata che vedete è il menu principale con 2 tasti. Uno di loro invia l'utente ad un sub che ho codificato come questo in un metodo IBAction:
ViewConroller *nextView = [[ViewController alloc] initWithNibName:@"NextMenu" bundle nil];
[self.view addSubview:[nextView view]];
[nextView release];
Questa parte è bene, tranne che i sottosistemi immagine mostra una barra 20 px parte inferiore della visualizzazione precedente. Mi sono guardato intorno e nessuna delle soluzioni come questo lavoro uno per me. Questo non è nemmeno il problema principale. Nella visualizzazione sub, ogni volta che si fa clic su un pulsante, esplode app. I metodi IBAction pausa prima di eseguire anche una linea all'interno del metodo. Qui, nel metodo GoBack IBAction, sto cercando di respingere il visualizzazione secondaria e tornare al menu principale:
[self.view removeFromSuperview];
I miei collegamenti siano corretti nei miei file XIB e tutto sembra essere in ordine. I pulsanti semplicemente non sono in esecuzione. Non sono sicuro se ha a che fare con l'aggiunta di vista sub o cosa. Ho fatto un sacco di ricerca in giro su google e questo sito, ma non riesco ancora a trovare una soluzione.
Ecco un esempio di errore che sto ricevendo:
Terminating app due to uncaught exception 'NSInvalidArgumentException, reason: '-[__NSCFType goBack:]: unrecognized selector sent to instance 0x5640b70'
Speriamo che voi ragazzi mi può dare una mano, questo è davvero abbastanza frustrante. Mi sento come se avessi provato di tutto. Grazie per il tuo tempo. Fatemi sapere se ho bisogno di fornire ulteriori informazioni. Grazie ancora.
Soluzione
ViewConroller *nextView = [[ViewController alloc] initWithNibName:@"NextMenu" bundle nil];
è creato View Controller.
[self.view addSubview:[nextView view]];
valore aggiunto di self.view
nextView.view
quanto di visualizzazione secondaria e mantenuto esso (N.B. mantenne valore next.view
non nextView
stesso)
[nextView release];
nextView
viene rilasciato e subito deallocato (perché non è mai stato mantenuto da nessuno)
Pulsante sta tentando di inviare un messaggio a oggetto deallocato -.> Comportamento non è definito, nel vostro caso qualche altro oggetto (o qualcosa che assomiglia a un oggetto) è lì e non capisce che cosa significa goBack:
Questo è il motivo per cui non si deve inventare una ruota (soprattutto se siete nuovi a questo) con il proprio navigazione. Usa UINavigationController
invece.