AFNetworkingでユーザーがログインできるアプリケーションを開発しようとしています。データベースを正しく設定しましたが、ユーザーが最初にログオンしたときを除いて、すべてが正常に機能しているようです。
私が持っているものは非常に単純です:
[[API sharedInstance] commandWithParams:params
onCompletion:^(NSDictionary *json) {
//result returned
NSDictionary* res = [[json objectForKey:@"result"] objectAtIndex:0];
if ([json objectForKey:@"error"]==nil && [[res objectForKey:@"UserID"] intValue]>0) {
[[API sharedInstance] setUser: res];
[self performSegueWithIdentifier:@"Login" sender:self];
} else {
//error
[UIAlertView title:@"Error" withMessage:[json objectForKey:@"error"]];
}
}];
基本的に、上記のコードはユーザーのログインの詳細の結果を返し、ログインの詳細が一致する場合にのみ成功します。上記のように、アプリケーション全体で使用されるsharedInstanceにユーザーを明確に設定しました。ユーザーが設定された後、ログインボタンが実行する必要があるため、セグエを実行しようとします。
セグエは発生し、プログラムは動作しますが、解決できない問題が2つあり、それを修正するために何時間も費やしてきました。まず、Xcodeの出力ウィンドウに次のメッセージが表示されます。
警告:プレゼンテーションの進行中に、LoginVCでUITabBarControllerを提示しようとしています!
次に、ユーザーが正しく設定されていることをテストするために、プロファイル画面(最初の画面)に、テキストが次のように設定されたラベルを付けます。
NSString stringWithFormat:@"Welcome %@",[[[API sharedInstance] user] objectForKey:@"username"]];
そして、ユーザー名が実際に表示されるか、次のように(null)と表示されるかは、ヒットまたはミスです。
また、ユーザーの値を出力ウィンドウに出力するために、そこで作成したボタンも表示されます。メッセージが「ようこそ(null)」でボタンを押しても、すべての値が正しく表示されているため、文字列にnullが表示されることがある理由がわかりません。
私が抱えている問題に関するストーリーボードの設定は次のとおりです。
誰かがこれについて私を助けてくれるなら、私は本当にそれをいただければ幸いです。