spingere crash View Controller
-
22-09-2019 - |
Domanda
Sto cercando di spingere una nuova visione sul mio controller di navigazione utilizzando:
-(IBAction)switchPage:(id)sender
{
MyTableViewController *myTableView = [[CMyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
[myTableView release];
[self.navigationController pushViewController:myTableView animated:YES];
}
Sono in esecuzione nella seguente errore:
2010-02-25 21:19:57.717 CoC[3399:20b] *** -[UIViewController switchPage:]: unrecognized selector sent to instance 0xf1a660
2010-02-25 21:19:57.718 CoC[3399:20b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UIViewController switchPage:]: unrecognized selector sent to instance 0xf1a660'
Soluzione
si stanno rilasciando un oggetto che avete appena assegnato, che non ha alcun senso.
MyTableViewController *myTableView = [[CMyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
[myTableView release];
rilascio myTableView dopo aver premuto in pila
Altri suggerimenti
rilascio di chiamata dopo la spinta.
2010-02-25 21: 19: 57,717 CoC [3399: 20b] * ** - [UIViewController switchPage:]: selettore non riconosciuto inviato ad esempio 0xf1a660
Il tuo incidente non a causa del codice di quello che hai detto. Ma c'è un bug nel codice come si stampa e thenpush. Modificare come:
-(IBAction)switchPage:(id)sender
{
MyTableViewController *myTableView = [[CMyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:myTableView animated:YES];
[myTableView release];
}
Credo che l'oggetto che si chiama "switchPage:" Metodo sta avendo qualche problema. Controllare o mostrare l'invocazione di questo metodo per qualsiasi aiuto
Saluti, Manjunath
Sopra è bene, quando il controller visualizzazione secondaria è stato spinto nella pila del nav, il conteggio mantenere dovrebbe essere aumentato, allora si dovrebbe rilasciarlo dopo l'operazione di spinta.
Sei sicuro che non è necessario scambiare ultime due righe? Primo controller di spinta, quindi rilasciarlo non viceversa ...:)
Come accennato in precedenza, si rilascia il controller della vista, prima di spingerlo. Quando si spingerlo verso il controller di navigazione, il conteggio mantenere è aumentato, e quindi è possibile rilasciarlo.
-(IBAction)switchPage:(id)sender
{
MyTableViewController *myTableView = [[MyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:myTableView animated:YES];
[myTableView release];
}