Question

Je suis en train de pousser une nouvelle vue sur mon contrôleur de navigation à l'aide:

    -(IBAction)switchPage:(id)sender
{
 MyTableViewController *myTableView = [[CMyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
 [myTableView release];
 [self.navigationController pushViewController:myTableView animated:YES];
}

Je suis en cours d'exécution dans l'erreur suivante:

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'
Était-ce utile?

La solution

vous publiez un objet que vous venez qui ne fait pas alloué de sens.

 MyTableViewController *myTableView = [[CMyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
     [myTableView release];

communiqué myTableView après que vous poussez sur la pile

Autres conseils

libération d'appel après avoir poussé.

25/02/2010 21: 19: 57,717 CoC [3399: 20b] * ** - [UIViewController switchPage]: sélecteur non reconnu envoyé à 0xf1a660 instance

Votre accident non pas à cause du code ce que vous avez mentionné. Mais il y a un bogue dans votre code comme la libération et thenpush. Modifier comme:

 -(IBAction)switchPage:(id)sender
{
 MyTableViewController *myTableView = [[CMyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
 [self.navigationController pushViewController:myTableView animated:YES];
 [myTableView release];
}

Je suppose que l'objet qui appelle « switchPage: » la méthode est d'avoir un problème. Vérifiez ou montrer l'invocation de cette méthode pour toute aide

Cordialement, Manjunath

Au-dessus est bien, lorsque le contrôleur a été poussé sous-vue dans la pile de la navigation, devrait augmenter le nombre de conserver, alors vous devriez le libérer après l'opération de poussée.

Êtes-vous sûr de ne pas besoin d'échanger deux dernières lignes? Premier contrôleur de poussée, puis relâchez pas inversement ...:)

Comme mentionné précédemment, vous relâchez le contrôleur de vue avant de le pousser. Lorsque vous poussez sur le contrôleur de navigation, le nombre de conserver augmente, et vous pouvez le libérer.

-(IBAction)switchPage:(id)sender
{
     MyTableViewController *myTableView = [[MyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
    [self.navigationController pushViewController:myTableView animated:YES];
    [myTableView release];
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top