2016-07-12 10 views
-3

mit abzumelden, wenn ich auf Login-Seite klicken Sie auf Ansicht Logout-Button kommen und wieder meine Homepage öffnen .. das ist mein Problem ist ..konnte nicht erfolgreich NSUserDefault

hier ist mein Code- dieser Code für die Prüfung der Wert in NSUserDefault

-(void)viewWillAppear:(BOOL)animated{ 

    self.navigationController.navigationBar.hidden = YES; 
    // cheq the value in NSUserdeafault 

    if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"login"] boolValue]) { 

     HomePage *mainView = [[HomePage alloc]initWithNibName:@"HomePage" bundle:nil]; 

     [self.navigationController pushViewController:mainView animated:YES]; 
    } 
} 

und dieses ist für Logout-Button

- (IBAction)logout_btn:(id)sender { 
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[defaults setValue:@"0" forKey:@"logout"]; 

[defaults synchronize]; 
     LoginPage *log = [[LoginPage alloc] init]; 
     MyNavigationController *navController = [[MyNavigationController alloc] initWithRootViewController:log]; 
     navController.navigationBar.translucent=NO; 

     [menuController setRootController:navController animated:NO]; 


} 

bitte geben Sie mir Lösung

+2

scheint, dass Sie das nicht eingefügt haben Ausloggen b utton code, aber die Ansicht erscheint zweimal Code. Bitte posten Sie Ihren Abmelde-Code. – rckoenes

+0

@rckoenes Sir, hier ist mein Abmelde-Button Code – arun

+0

Warum würden Sie "Login" Status in 'NSUserDefaults' halten? Das ist lächerlich. – Droppy

Antwort

1

Verwenden Sie den Bool-Datentyp für den "Login" -Schlüssel.

, wenn Sie sich einloggen Verwendung dieses:

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"login"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 

wenn Logout-Button geklickt haben diese gesetzt:

[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"login"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 
+0

- (IBAction) logout_btn: (ID) Absender { NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; [defaults setValue: @ "0" forKey: @ "logout"]; [Standardwerte synchronisieren]; LoginPage * log = [[LoginPage alloc] init]; MyNavigationController * navController = [[MyNavigationController Alloc] initWithRootViewController: log]; navController.navigationBar.translucent = NEIN; [menuController setRootController: navController animiert: NO]; } sir dies ist meine Abmelde-Taste Code – arun

+0

Also was bedeutet 'JA'/'NEIN' in 'NSUserDefaults' eigentlich zu halten? Sind Sie sicher angemeldet, dass Sie eine aktive Netzwerkverbindung haben und authentifiziert wurden? Also, wie bekommst du diese Dinge? – Droppy

0

Sie eine Zeichenfolge Sie USERDEFAULT Einstellung, die Ihren Scheck wahr machen wird.

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setValue:@"0" forKey:@"logout"];

sollte es so etwas wie dieses:

[[NSUserDefaults standardUserDefaults] setValue:@NO forKey:@"logout"]; 

oder

[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"logout:]; // explicitly indicating that you are setting a BOOL 

dann in Ihrem Check können Sie verwenden

[[[NSUserDefaults standardUserDefaults] boolForKey:@"logout"]; // you won't need to specify boolValue anymore unless you use the first option (setValue:@NO) 
Verwandte Themen