下面的代码工作,但有一个错误。情景是,我开始登录进入应用程序系统。一旦登录成功,应用程序将设置UserDefaults(UserId)。之后,我可以使用存储的UserId导航应用视图。一旦我转到设置和标签注销,这将清除UserId并进入登录视图。什么是从IOS应用程序注销的完美方式?
该错误:当我再次登录到应用程序,然后单击主页按钮转到iPhone桌面并关闭应用程序,并返回打开它,它仍然存储UserId。所以,如果我去设置并注销将清除UserId并不会去登录视图。我不知道为什么。
代码:
- (IBAction)resetKeychain:(id)sender {
UIActionSheet *actionSheet = [[UIActionSheet alloc]
initWithTitle:@"Are you sure you want to logout?"
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:@"Logout"
otherButtonTitles:nil];
actionSheet.actionSheetStyle = UIActionSheetStyleDefault;
[actionSheet showFromTabBar:self.tabBarController.tabBar];
[actionSheet release];
}
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex ==0) {
//logout
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
//delete user ID fro user Defaults
[defaults setObject:nil forKey:@"UserId"];
//redirect to login view
NewClassMoonAppDelegate * appsDelegate =[[UIApplication sharedApplication] delegate];
[appsDelegate.window addSubview:[appsDelegate.login view]];
}
}
有没有这样的事,作为一个“完美的解决方案。”请记住,最好的是善的敌人。 – Eric
好吧,埃里克,谢谢 –