下面的代碼工作,但有一個錯誤。情景是,我開始登錄進入應用程序系統。一旦登錄成功,應用程序將設置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
好吧,埃裏克,謝謝 –