0

ユーザーがデータベースにユーザー プロファイルを既に作成しているかどうかに応じて、アプリに特定のビューを開くように指示しようとしています。

だから基本的に -

- (void) viewWillAppear:(BOOL)animated {

//all my ASIHTTPRequest code here
//blah blah blah

NSString *responseString = [request responseString];

if ([responseString isEqualToString:@"noexistingdata"])
{

FriendsViewController *friendsview = [[FriendsViewController alloc] initWithNibName:nil bundle:nil];

//SOMETHING NEEDS TO GO HERE TO MAKE THIS WORK!

} else if ([responseString isEqualToString:@"success"])
{

//do whatever

}

}

ビューを変更するための最も基本的なコードが必要なだけです... IBAction を使用してみますが、これはアプリの起動 (ユーザーが押すボタンへの応答ではなく) の無効であるため、明らかに機能しません。ボイドインボイドについて考えましたが、これもうまくいきませんでした。

基本的に私が必要とするのは:

アプリを起動 > アプリがサーバーから応答を受け取る > (IF RESPONSE = "THIS", LOAD VIEW "X") (IF RESPONSE = "THAT", LOAD VIEW "Y")

誰にも手がかりがありますか?

PS: これは applicationDidFinishLaunching と記載したほうがよいでしょうか?

4

1 に答える 1

0

-viewWillAppear: ビューが表示される直前に呼び出されます。これはおそらく、a) 同期ネットワーク リクエストを実行し、b) 別のビュー コントローラーをロードするのに最適な時期ではありません。

アプリケーションデリゲートに、「サーバーに接続しています」や「ユーザー資格情報を取得しています」などのメッセージを表示するだけのビューコントローラーを作成することをお勧めします。アニメーション化されたスピナーを追加して、この時点でそれが許可されている場合は、待機する必要があることをユーザーに知らせることができます。次に、そのコントローラーの -viewDidLoad メソッドなどでビューが表示された後、非同期ネットワーク接続を開始してサーバーと通信します。応答が返ってきたら、次にインスタンス化するビュー コントローラーを決定し、それを実行します。

于 2011-03-20T18:39:28.347 に答える