2012-04-09 3 views
1

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

+0

Was meinst du mit "fail"? Absturz? – Saphrosit

+0

@Saphrosit nein es zeigt nur einen leeren & schwarzen Bildschirm – ilhnctn

Antwort

-1

berücksichtigt, dass die Methode objectForKey, wenn der Wert nicht vorhanden ist zurückgibt Nil und nicht leer Strigna, dann hypothetisch arrivresti nicht immer die erste Bedingung überprüfen.

Verwandte Themen