empujar accidentes Vista Controlador
-
22-09-2019 - |
Pregunta
Estoy intentando empujar una nueva visión en mi controlador de navegación usando:
-(IBAction)switchPage:(id)sender
{
MyTableViewController *myTableView = [[CMyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
[myTableView release];
[self.navigationController pushViewController:myTableView animated:YES];
}
Me estoy quedando en el siguiente error:
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'
Solución
estás liberando un objeto que acaba de ser asignado que no tiene sentido.
MyTableViewController *myTableView = [[CMyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
[myTableView release];
myTableView liberación después de empujarlo hacia la pila
Otros consejos
Liberación de la comunicación después de empujar.
2010-02-25 21: 19: 57.717 CoC [3399: 20b] * ** - [UIViewController switchPage:]: selector no reconocido enviado a instancia 0xf1a660
Su caída no por el código de lo que usted ha mencionado. Pero hay un error en el que un código como liberación y thenpush. Cambiarlo como:
-(IBAction)switchPage:(id)sender
{
MyTableViewController *myTableView = [[CMyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:myTableView animated:YES];
[myTableView release];
}
supongo que el objeto que está llamando "switchPage:" método está teniendo algún problema. Compruébelo usted mismo o mostrar la invocación de este método para cualquier ayuda
Saludos, Manjunath
Por encima está bien, cuando el controlador subvista ha sido empujado en la pila de la NAV, la cuenta de retención se debe aumentar, entonces debería liberarlo después de la operación de empuje.
¿Está seguro de que no es necesario intercambio última dos líneas? En primer controlador de empuje, luego soltarlo no viceversa ...:)
Como se mencionó anteriormente, se suelta el controlador de vista antes de empujarlo. Cuando se empuja hacia el controlador de navegación, la retienen recuento se incrementa, y entonces usted puede liberarlo.
-(IBAction)switchPage:(id)sender
{
MyTableViewController *myTableView = [[MyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:myTableView animated:YES];
[myTableView release];
}