Objective c 无法使用NSUserDefault成功注销
当我点击“注销”按钮时,会在登录页面上显示视图,然后再次打开我的主页。。这是我的问题 这是我的密码- 此代码用于检查Objective c 无法使用NSUserDefault成功注销,objective-c,xib,Objective C,Xib,当我点击“注销”按钮时,会在登录页面上显示视图,然后再次打开我的主页。。这是我的问题 这是我的密码- 此代码用于检查NSUserDefault -(void)viewWillAppear:(BOOL)animated{ self.navigationController.navigationBar.hidden = YES; // cheq the value in NSUserdeafault if ([[[NSUserDefaults standardUserDe
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];
}
}
这个是注销按钮
- (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];
}
请给我解决方案使用Bool数据类型作为“登录”键
登录时,请使用以下命令:
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"login"];
[[NSUserDefaults standardUserDefaults] synchronize];
单击“注销”按钮时,请设置:
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"login"];
[[NSUserDefaults standardUserDefaults] synchronize];
您正在将字符串设置为UserDefault,这将使您的检查为true
NSUserDefaults*默认值=[NSUserDefaults standardUserDefaults];
[默认设置值:@“0”forKey:@“注销”]代码>
应该是这样的:
[[NSUserDefaults standardUserDefaults] setValue:@NO forKey:@"logout"];
或
那么在你的支票上你可以用
[[[NSUserDefaults standardUserDefaults] boolForKey:@"logout"]; // you won't need to specify boolValue anymore unless you use the first option (setValue:@NO)
似乎您没有粘贴注销按钮代码,但视图将显示代码两次。请发布您的注销按钮代码。@rckoenes先生,这是我的注销按钮代码为什么您在NSUserDefaults
中保持“登录”状态?这太荒谬了。一方面你正在设置注销键的值,另一方面你正在检查登录键的值…-(iAction)logout_btn:(id)发送方{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动画:NO];}先生,这是我的注销按钮代码那么在NSUserDefaults
中按住YES
/NO
实际上意味着什么?当然,登录意味着你有一个活动的网络连接并已通过身份验证?那么你如何获得这些东西呢?
[[[NSUserDefaults standardUserDefaults] boolForKey:@"logout"]; // you won't need to specify boolValue anymore unless you use the first option (setValue:@NO)