0

ユーザーがテーブルの一番下に到達したときにサーバーからより多くのデータを要求する UITableView があります (Twitter アプリケーションと同様)。ただし、モーダルセグエを使用して、ユーザーの希望に合わせてデータを除外しようとしています。フィルタリングするデータを適切に選択するには、すべてのデータを読み込んで分類する必要があります。すべてをロードするには、複数の NSURLConnections を送信して複数のページをロードする必要があります。私はそれを持とうとしているので、1つが完了すると次が始まります。

ただし、接続は で完了するためconnectionDidFinishLoading、 内から同時に NSURLConnections を送信する方法がわかりませんprepareForSegue。次のようにwhileループを使用してみましたprepareForSegue

while (All of the data is not loaded) {
    if (isLoading == NO) {
        [self loadMoreResults];
    }
}

ここで、「isLoading」はBOOLビューコントローラーの実装ファイルで宣言されています。isLoading は 内で値を YES に変更し、 の最後で にloadMoreResults戻ります。ただし、 内では、isLoading が YES から NO に戻ることはありません。NOconnectionDidFinishLoadingprepareForSegue

これはマルチスレッドの問題ですか? 他の質問について調査したところ、NSURLConnection にsendAsynchronousRequest:queue:completionHandler:は完了ハンドラーが役立つ可能性のあるクラス メソッドがあることがわかりましたが、それをどのように使用するかはわかりません。

prepareForSegueまた、リクエストを送信した直後ではなく、最後の接続が終了した後も実行を続けたいです。

前もって感謝します!

4

1 に答える 1

0

次に、ストーリーボードのバー ボタン アイテムからビュー コントローラーにセグエを直接リンクしないでください。

テーブル ビュー コントローラーからフィルター ビュー コントローラーに、一般的なセグエと識別子をリンクするだけです。

そして、バー ボタン アイテムから、ストーリーボードからアクションを作成して、最初に複数の NSURLConnections を送信できるようにします。

最後に、最後の接続が終了した後、コードでメソッドを呼び出しますperformSegueWithIdentifier

于 2013-05-23T09:16:51.527 に答える