0

アプリケーションを iPad で動作するように変換します。ポップオーバー、非表示、およびアクティビティ インジケータの処理シーケンスを理解するのに助けが必要です。

望ましいシーケンスは次のとおりです。

  1. ポップオーバー内のナビゲーション コントローラーでラップされたテーブルビューを表示します。
  2. テーブルから行を選択します。
  3. その行からプライマリ ビュー コントローラー (親) に情報を送信します。
  4. ポップオーバーを完全に閉じます。
  5. 処理が行われていることを示すアクティビティ インジケーターを表示します。
  6. いくつかの処理を行います。
  7. アクティビティ インジケーターを非表示にします。
  8. プライマリ ビューにグラフィックを描画します。

すべての処理が完了してグラフィックスが描画されるまで、ポップオーバーが画面に表示されたままになることを除いて、上記のすべてを実行できました。ポップオーバーが消えると、アクティビティ インジケーターが一瞬表示されます。デリゲート、通知、セッターを試してみましたが、役に立ちませんでした。メソッド内のすべてのプロセスが必ずしも順番に実行されるとは限らず、すべてが実行されるまでポップオーバー ビューが保持されるようです (この場合は行選択メソッド)。

すべてが正しい順序で機能するように、処理コードとアクティビティ インジケーターの両方をどこに配置すればよいでしょうか?

4

2 に答える 2

1

これは非常に単純な実装です

次のリストを確認してください

  1. ポップオーバーに表示される viewController のデリゲートを作成する
  2. popover viewController のデリゲートをメイン viewController として設定する
  3. イベントが受信されたら、メインのviewControllerでポップオーバーの参照を保持して、それを閉じます。
  4. イベントが受信されたら、選択した値を取得した後、ポップオーバーを閉じます
  5. アクティビティ インジケーター ビューまたは HUD を表示する
  6. 処理が完了したら、アクティビティ インジケーターを閉じます

これを行うデモ アプリのソース コード。

于 2013-06-08T05:01:23.413 に答える
0

UIPopoverControllerインスタンスを iVarにします。必要なView Controllerを使用して、ボタンメソッドまたは設計したものに割り当てます。ポップオーバー コントローラーのルート ビュー コントローラーからプロトコルを作成し、親ビュー コントローラーをそれに準拠させます。メソッドで、didSelectRowAtIndexPath:そのデリゲートをポップオーバーの親ビュー コントローラーに呼び出します。親ビュー コントローラーでのメッセージ受信時に、ポップオーバー コントローラー インスタンスを閉じて、そこで処理を行います。(プロジェクトが ARC をサポートしていない場合は、ポップオーバーが数回割り当てられる可能性があるため、メモリを適切に管理してください。)

于 2013-06-08T05:01:36.650 に答える