viewDidAppear Nicht in TabBarController Firing> Navigation> UITableView
-
22-07-2019 - |
Frage
Im Moment habe ich eine Tab-Leiste Controller mit einem Navigation auf eine der Registerkarten einrichten, dann habe ich eine UITableView Feder für die Navigationcontrollers Ansicht einzurichten. All dies wurde durch IB und ich möchte halten, dass es so eingerichtet. Ein bisschen wie dieses Tutorial http: //twilloapp.blogspot .com / 2009/05 / how-to-embed-Navigation-controller.html jetzt die Ansicht Lasten perfekt, wenn ViewDidLoad aufgerufen. Aber wenn ich dann laden weitere Ansichten über Code IE
MyApp_AppDelegate *delegate = [[UIApplication sharedApplication] delegate];
UINavigationController *nav = (UINavigationController *)delegate.controller.selectedViewController;
newViewController = [[newViewController alloc] initWithNibName:@"newView" bundle:nil];
[nav pushViewController:newViewController animated:YES];
//At this point the view works! and loads
Wenn ich versuche, mit der Navigationsleiste zu gehen zurück, um es zurück zu meiner vorherigen Ansicht fein geht
Jetzt muss ich die Tableview aktualisieren, wenn ich wiederkommen, aber viewDidAppear
Aufruf funktioniert nicht.
Ich habe versucht, das Hinzufügen UINavigationDelegate
zu derselben ViewController
Klasse als Tableview und dann - (void)navigationController:(UINavigationController *)navigationController didShowViewController:
Aufruf
Aber das hat nicht funktioniert. Ich habe auch versuchte den gleichen Delegaten wie die Tab-Leiste Controller hinzugefügt und das Hinzufügen der gleichen navigationController didShowViewController:
es aber, dass auch fehlgeschlagen.
Wie bekomme ich diese Tabelle jedes Mal die Ansicht Lasten zu aktualisieren?
Lösung 2
Ich fand die Delegatendeklaration in der Interface-Datei fehlt. Doh! Ich habe auch versucht, dass es nur an vielen Orten arbeiten endete, als ich es zum ersten NavigationControllers Ansicht hinzugefügt (meine Tabellenansicht)
Andere Tipps
Sie sollten nicht viewDidAppear
aus dem Code zu verlangen. Cocoa Touch sollte für Sie tun.
Rufen Sie die reloadData
Methode der Tabellenansicht, um es seinen Inhalt zu aktualisieren.