Приведенный ниже код работает, но содержит ошибку. Сценарий таков: я начинаю с входа в систему приложений. После успешного входа в систему приложение установит UserDefaults (UserId). После этого я могу перемещаться по представлениям приложения с сохраненным UserId. Как только я перехожу к настройкам и выходу из вкладки, это очистит UserId и перейдет в режим входа в систему.
ОШИБКА: когда я снова вхожу в приложение и нажимаю кнопку «Домой», чтобы перейти на рабочий стол iPhone, закрыть приложение и вернуться, чтобы открыть его снова, оно все еще сохраняет идентификатор пользователя. Итак, если я перейду к настройке и выйду из системы, это очистит 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]];
}
}