下面的代码正在运行,但有一个错误。场景是,我首先登录进入应用系统。登录成功后,应用程序将设置 UserDefaults (UserId)。之后,我可以使用存储的 UserId 导航应用程序视图。一旦我进入设置和选项卡注销,这将清除 UserId 并进入登录视图。
BUG:当我再次登录应用程序并单击主页按钮转到iPhone桌面并关闭应用程序,然后返回再次打开它仍然存储用户ID。因此,如果我进入设置并注销,这将清除 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]];
}
}