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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top