Push-View-Controller-Abstürze
-
22-09-2019 - |
Frage
Ich versuche, eine neue Sicht auf meiner Navigationssteuerung drücken mit:
-(IBAction)switchPage:(id)sender
{
MyTableViewController *myTableView = [[CMyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
[myTableView release];
[self.navigationController pushViewController:myTableView animated:YES];
}
Ich bin in den folgenden Fehler ausgeführt wird:
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'
Lösung
Sie veröffentlichen ein Objekt einfach zugeordnet, die keinen Sinn macht.
MyTableViewController *myTableView = [[CMyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
[myTableView release];
Release myTableView, nachdem Sie es auf den Stapel schieben
Andere Tipps
Anrufmitteilung nach drücken.
2010-02-25 21: 19: 57,717 CoC [3399: 20b] * ** - [UIViewController switchPage:]: Unbekannter Selektor an Instanz gesendet 0xf1a660
Ihr Absturz nicht wegen des Codes, was Sie erwähnt haben. Aber es ist ein Fehler in Ihnen Code wie Release und thenpush. Ändern Sie es wie:
-(IBAction)switchPage:(id)sender
{
MyTableViewController *myTableView = [[CMyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:myTableView animated:YES];
[myTableView release];
}
Ich denke, das Objekt, das ruft „switchPage:“ Methode einige Probleme hat. Prüfen Sie es oder zeigen den Aufruf dieser Methode für jede Hilfe
Viele Grüße, Manjunath
Oben ist in Ordnung, wenn die subview Controller hat sich in den nav Stack geschoben worden ist, sollte die Beibehaltungszähler erhöht werden, dann sollten Sie es nach dem Push-Betrieb freigeben.
Sind Sie sicher, dass Sie brauchen nicht zu tauschen letzten beiden Zeilen? Erste Push-Controller, lassen Sie sie dann nicht umgekehrt ...:)
Wie bereits erwähnt, geben Sie den View-Controller, bevor Sie ihn drücken. Wenn Sie es auf die Navigationssteuerung drücken, behalten die Zählung erhöht wird, und dann können Sie es freigeben.
-(IBAction)switchPage:(id)sender
{
MyTableViewController *myTableView = [[MyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:myTableView animated:YES];
[myTableView release];
}