私はストーリーボードを使って自分のアプリの初期ビューをメインに設定しました。iOS5でストーリーボードを使用してユーザーのログインデータを保存するにはどうすればよいですか?
if (currentUser) {
// do stuff with the user
//use storybaord nibs
} else {
// show the signup or login screen
UIStoryboard *storyboard = self.window.rootViewController.storyboard;
self.window.rootViewController = [storyboard instantiateViewControllerWithIdentifier:@"loginVC"];
}
問題は、私はcurrentUser
ためのロジックを持っていないです:私はすでにユーザが署名されていない場合は、ログインVCをロードする必要がありアプリデリゲートでこのコードを持っています。それは単なるスエードコードです。どのようにこれを正しく設定できますか?
これは私が実際のログインVCでユーザをログインするために使用するコードです。私はユーザ名/パスをNSUserDefaults
に保存します。
-(IBAction)loginButtonPressed:(id)sender{
ASIFormDataRequest *request = [[ASIFormDataRequest alloc] initWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://myapp.com/20111115/60b88126/login_user/"]]];
[request setPostValue:self.usernameTextField.text forKey:@"username"];
[request setPostValue:self.passwordTextField.text forKey:@"password"];
[request startSynchronous];
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:self.usernameTextField.text forKey:@"login"];
[userDefaults setObject:self.passwordTextField.text forKey:@"password"];
NSError *error = [request error];
NSString *responseString = nil;
if (!error) {
responseString = [request responseString];
} else {
responseString = @"Failed to connect to server, please check your WiFi or 3G connection.";
}
NSDictionary *responseDictionary = [responseString JSONValue];
NSString *loginProblems = [responseDictionary valueForKey:@"login_errors"];
if (![loginProblems isEqualToString:@""]) {
//Invalid login
} else {
[self performSegueWithIdentifier:@"login" sender:self];
}
}