Ich habe eine webbasierte Anwendung, die fast alle ihre Daten von meinem Server abruft. In meiner Login-Ansicht gebe ich einige Benutzerinformationen ein und erstelle eine GET-Anfrage an den Server (ich mache diese Dinge in einer Methode namens loginMethod
), wenn die eingegebenen Werte mit denen in der Datenbank übereinstimmen, gebe ich einige Detaildaten zurück, speichere Benutzerinformationen unter NSUserDefaults
und schiebe einen neuen Viewcontroller (meine Hauptansicht). Alles ist in Ordnung, bis hier, aber ich möchte ein Steuerelement zu meiner AppDelegate-Klasse hinzufügen, wenn es keine Daten in den Standardwerten gibt (bedeuten, wenn es das erste Mal ist) Ich möchte Login-Controller anzeigen, wenn es Daten gespeichert ist, die ich möchte Hauptmenü anzeigen. Ich habe einige Wege ausprobiert, bin aber die ganze Zeit gescheitert. Hier ist mein Code:Wie NSUserDefaults abgerufen und zweite Ansicht nach der Installation
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//uName, serve1r and pasword are my user defaults
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
uName = [defaults objectForKey:@"kUsername1"];
serve1r = [defaults objectForKey:@"kServer1"];
pasword = [defaults objectForKey:@"kPassword1"];
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
if([uName isEqualToString:@""]){
//BNT_DetailViewController is my login class
detailViewController1 = [[[BNT_DetailViewController alloc] initWithNibName:@"BNT_DetailViewController" bundle:nil] autorelease];
navigationController = [[[UINavigationController alloc] initWithRootViewController:detailViewController1] autorelease];
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
application.applicationIconBadgeNumber=0;}
else{
//controller is an instance of MainMenu class
controller = [[[MainMenu alloc] initWithNibName:@"MainMenu" bundle:nil] autorelease];
navigationController = [[[UINavigationController alloc] initWithRootViewController:controller] autorelease];
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
application.applicationIconBadgeNumber=0;
}
return YES;
}
EDIT Es ist nicht abstürzen wird, aber es zeigt einen schwarzen Bildschirm. Es gibt kein Problem mit dem Speichern der Werte
Was meinst du mit "fail"? Absturz? – Saphrosit
@Saphrosit nein es zeigt nur einen leeren & schwarzen Bildschirm – ilhnctn