0

メイン ナビゲーション/タブ ビューに、openGL を使用してグラフをレンダリングする UIView を表示するグラフ作成アプリケーションを開発しています。そのビューの下には、グラフ上の要素のリストを表示する UITableView と追加ボタンがあります。

ユーザーが別のタブをクリックしてグラフ ビュー タブに戻ると、テーブル ビューが再描画されないことがあります。

[tableView reloadData] メソッドがナビゲーション コントローラー (テーブル ビューのデリゲートおよびデータ ソースでもある) の viewDidAppear メソッドで呼び出されています。

numberOfSectionsInTableView と numberOfRowsInSection が呼び出されますが、後者の両方のメソッドが正の値を返すにもかかわらず、cellForRowAtIndexPath は呼び出されません。

これは断続的な問題で、たまにしか発生しませんが、これに影響を与えるもの (もしあれば) は明らかではありません。

誰にもアイデアはありますか?

[編集] すぐに追加する必要があります。テーブルビューをクリックするか、それ以外の方法で操作すると、説明どおりに失敗したかどうかにかかわらず、常に正常に再描画されます。

[もう一度] もう少し情報を。説明どおりにエラーが発生し、cellforRowetc メソッドではなく最初の 2 つを呼び出すと、cellForRowetc が最終的に呼び出され (最初の 2 つのメソッドは呼び出されず)、再描画される前に、ユーザーがテーブルを操作するまで待機しているように見えます。

4

1 に答える 1

0

別のスレッドで開始された UIActivityIndi​​cator があり、Web サービスへの要求がいつ行われたかを示していました。Web サービスの呼び出しが完了すると、UIActivityIndi​​cator を停止して非表示にする通知がグラフ コントローラー クラスに送信されました。このメソッドでは、ビューが表示されているかどうかに関係なく、テーブルで reloadData が呼び出されていたため、問題が発生していたようです。

結論は、テーブルが表示されていない限り、テーブルで reloadData を呼び出さないことのようです。

于 2010-05-27T14:22:07.257 に答える