0

私の最初の計画は、分割ビュー コントローラーを使用してテーブル ビューとその横に iPad アプリ用の汎用ビューを作成することでした。次に、分割ビュー コントローラーを子コントローラーとして使用できないことに気付きました。そのため、代わりにテーブル ビュー コントローラーを使用して実験してきましたが、これまでのところかなり良い結果が得られています。基本的に、選択した行に応じて使用するさまざまなビューのコンテナーとして、テーブルビューのヘッダー ビューを使用しています。唯一の未解決の問題は、Web サイトの画像が最初に表示されたときに UIWebView に表示されないことです。Web ビューを表示する別の表の行をタップすると、問題なく表示されます。そして、元のものをもう一度タップすると、それも問題なく表示されます。

どちらを先にタップしても問題ありません。画像が表示されないのは常に最初のものです。画像を表示する代わりに、画像ファイルの名前を表示します。

分割ビューコントローラーで同様のことを試したところ、この問題は発生しませんでした。

私が探しているものはありますか?それとも、してはいけないことをしなければならないことがありますか?

重要な場合、読み込まれるページは、Irfanview の HTML サムネイル ページ ジェネレーターで作成された、リモート サーバー上の単なるサムネイル ページです。

PS さらにテストを重ねた結果、期待どおりに動作しないのは実際には最初のプレゼンテーションのみです。最初とは、アプリ セッションごとの最初のセッションを意味します。はUIWebview、テーブル ヘッダーのサブビューとして表示されます。テーブルビュー コントローラーは、ユーザーが画像をタップしたときに表示される別のコントローラーのボタンからのポップオーバーとして表示されます。これらのコントローラーなどのレイヤーをすべて閉じても、それらを再度インスタンス化すると、UIWebView正しく表示されます。

これは、開始前にダミーをロードする可能性があることを示唆していますUIWebViewが、それは厄介なようです。

への呼び出しが 1 つだけあり、 への呼び出しwebViewDidStartLoad:が 1 つだけあり、 への呼び出しがまったくwebViewDidFinishLoad:ありませんwebView:didFailLoadWithError:

KLUDGE: クラッジは機能します。ここにあります:

テーブル ビュー コントローラーで、ブール値のプロパティを作成し、それをviewDidLoadURLHasBeenRequestedに設定します。NO次に、次のようにリロードを要求します。

-(void)webViewDidFinishLoad:(UIWebView *)webView
{
   if (!self.URLHasBeenRequested) {
      //On first pass, try a second request.
      [webView loadRequest:webView.request];
      self.URLHasBeenRequested = YES;//Set this flag so a duplicate request happens only the first time.
   }
}
4

1 に答える 1