Ich habe eine UINavigationController in meinem Storyboard und zwei Viewcontrollers, der die folgende Funktion ausführen:Set RootViewController innerhalb einer Klasse von UINavigationController
InitialViewController: dies die Anwendung des Home-Bildschirm wäre.
FirstTimeViewController: ist der Bildschirm, der angezeigt wird, wenn der Benutzer die App zum ersten Mal öffnet.
Mein UINavigationController hat eine Klasse, die den folgenden Code haben:
- (void)viewDidLoad {
[super viewDidLoad];
if ([[ReadPlist initWithPlist:@"Configuration.plist" key:@"initialConfiguration"] boolValue]){
FirstTimeViewController *firstTimeController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"firstTimeView"]; //or the homeController
[self.navigationController pushViewController:firstTimeController animated:NO];
}else{
InitialViewController *initialController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"initialView"]; //or the homeController
[self.navigationController pushViewController:initialController animated:NO];
}
}
Grundsätzlich ist dieser Code die .plist-Datei überprüfen, ob ein bestimmtes Feld aktiv ist, wenn JA bedeutet, dass die Anwendung zum ersten läuft Zeit, in diesem Fall ruft es den entsprechenden viewController auf.
Aber dieser Code funktioniert nicht und ich sehe einen NavigationController mit einer schwarzen Ansicht. Alles, was ich tun würde, ist dasselbe, was wir im Interface Builder tun, einfach eine Zeile aus dem UINavigationController in einen UIViewController ziehen und als "Root View Controller" einstellen, aber in meinem Fall versuche ich das programmatisch.
Wie kann ich das tun?
In Ihrer aktuellen Implementierung Sie sind Pushviewcontroller, dass der Grund für die Rücktaste ist sichtbar ist. Stellen Sie besser die Navigation rootViewController ein –