0

iPad アプリを使用していますが、webview の読み込みに問題があります。上部にViewController水平スクロールのテーブルビューがあります。このテーブルビューでは、別のテーブルビューがサブビューとして追加され、90 度回転されてから、カスタム セルがこれにロードされます。これにより、水平スクロール効果が得られます。UIWebview は tableview のすぐ下にあります。テーブルビューにはニュース記事が入力されており、記事が選択されたときに完全な Web ページをロードしたいと考えています。UIWebViewロードされないことを除けば、すべてが正常に機能します。考えられることはすべて試しましたが、理由がわかりません。

すべてがどのように設定されているかは少し複雑なので、私ができることをすべて説明してみてください。UIWebView が含まれるメインの Viewcontroller は、そのクラスとして Horizo​​ntalTableViewController を使用します。テーブルビューは、そのクラスとして Horizo​​ntalTableCell を使用します。UIWebViewをロードするために使用しているコードは次のとおりです。

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{


[tableView deselectRowAtIndexPath:indexPath animated:YES];



NSString *loadURL;
loadURL=[[[NSString alloc] initWithString:urlString]stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSURL* url = [NSURL URLWithString:loadURL];

[self.horizontalTableViewController.webView loadRequest:[NSURLRequest requestWithURL:url]];







 NSLog(@"Load URL = %@",loadURL);

}

ログから、URL は正しいことがわかりますが、UIWebView は空白のままでロードされません。Horizo​​ntalTableViewController のアウトレットとして webview を設定しました。

ビューの階層は次のとおりです。

2012-06-04 10:22:08.568 Bandz[21211:fb03] *** Printing out all the subviews of     HorizontalTableViewController (UIViewController) ***
2012-06-04 10:22:08.570 Bandz[21211:fb03]    [0]: class: 'UITableView'
2012-06-04 10:22:08.570 Bandz[21211:fb03]       [0]: class: 'UIImageView'
2012-06-04 10:22:08.571 Bandz[21211:fb03]       [1]: class: 'UIImageView'
2012-06-04 10:22:08.571 Bandz[21211:fb03]    [1]: class: 'UINavigationBar'
2012-06-04 10:22:08.572 Bandz[21211:fb03]       [0]: class: 'UINavigationBarBackground'
2012-06-04 10:22:08.572 Bandz[21211:fb03]       [1]: class: 'UINavigationItemView'
2012-06-04 10:22:08.572 Bandz[21211:fb03]       [2]: class: 'UINavigationButton'
2012-06-04 10:22:08.573 Bandz[21211:fb03]          [0]: class: 'UIButtonLabel'
2012-06-04 10:22:08.573 Bandz[21211:fb03]    [2]: class: 'UIWebView'
2012-06-04 10:22:08.574 Bandz[21211:fb03]       [0]: class: '_UIWebViewScrollView'
2012-06-04 10:22:08.575 Bandz[21211:fb03]          [0]: class: 'UIImageView'
2012-06-04 10:22:08.575 Bandz[21211:fb03]          [1]: class: 'UIImageView'
2012-06-04 10:22:08.576 Bandz[21211:fb03]          [2]: class: 'UIImageView'
2012-06-04 10:22:08.576 Bandz[21211:fb03]          [3]: class: 'UIImageView'
2012-06-04 10:22:08.577 Bandz[21211:fb03]          [4]: class: 'UIImageView'
2012-06-04 10:22:08.595 Bandz[21211:fb03]          [5]: class: 'UIImageView'
2012-06-04 10:22:08.595 Bandz[21211:fb03]          [6]: class: 'UIImageView'
2012-06-04 10:22:08.596 Bandz[21211:fb03]          [7]: class: 'UIImageView'
2012-06-04 10:22:08.596 Bandz[21211:fb03]          [8]: class: 'UIImageView'
2012-06-04 10:22:08.597 Bandz[21211:fb03]          [9]: class: 'UIImageView'
2012-06-04 10:22:08.597 Bandz[21211:fb03]          [10]: class: 'UIWebBrowserView'

どんな助けでも大歓迎です!

4

2 に答える 2

0

私が状況を正しく理解していれば、まったく異なるViewControllerを使用するべきではありません。ビューコントローラ内のビューコントローラは、可能であるとしても、決して良い考えではありません。コントローラなしでUITableView(またはサブクラス)を作成します。次に、UITableViewのプロパティを作成し、そのプロパティをdidSelectRowAtIndexに設定します。

于 2012-06-03T20:50:43.297 に答える
0

tableView:didSelectRowAtIndexPath:このメソッドは、ユーザーがテーブルの行をタップしたときにのみ呼び出されるため、でこれを実行している理由は明確ではありません。セルに何かを入れるためのコードは、で呼び出す必要がありますtableView:cellForRowAtIndexPath:

ただし、設計では問題が発生します。ビューコントローラに2つのテーブルビューがあり、両方にデリゲートが設定されている場合、実装selfするメソッドのいずれかでパラメータをチェックして、どのテーブルビューが呼び出しを行っているかを確認する必要があります。tableView:...tableView

最後に、HorizontalTableViewControllerクラスにUIWebViewは何らかの方法であなたが含まれていますが、質問の説明のようには見えません。そのビットのコードも投稿してください。Webビューをインスタンス化していない可能性があります。

于 2012-06-03T20:51:57.070 に答える