0

そのため、作成中のブラウザー アプリで UIWebView にブックマークを読み込むための奇妙なアプローチがあります。Bookmarks UITableView の didSelectRowAtIndexPath には、次のコードがあります。

NSUserDefaults *lString = [NSUserDefaults standardUserDefaults];
[lString setValue:[bookmarks objectAtIndex:indexPath.row] forKey:@"loString"];

次に、UITableView で選択したオブジェクトのモーダルを、このコードに基づいて UIWebView をロードする別のビュー コントローラーに設定します。したがって、問題は、テーブル ビュー オブジェクトを初めてクリックしたときに UIWebview が空白になり、2 回目には最初にクリックした URL が表示されることです。助けてください!ありがとう、マイケル

- (void)viewDidLoad
{
[super viewDidLoad];
NSUserDefaults *lString = [NSUserDefaults standardUserDefaults];
loadString = [lString valueForKey:@"loString"];
NSURL *url = [[NSURL alloc] initWithString:loadString];
NSURLRequest *togo = [[NSURLRequest alloc] initWithURL:url];
[webView loadRequest: togo];

// Do any additional setup after loading the view.
}
4

1 に答える 1

0

-loadRequest メソッドは非同期です。つまり、メイン スレッドの実行中に別のスレッドでロードを開始します。

そのため、最初に呼び出されると、空白の画面が表示されます (最初の要求がまだ別のスレッドで実行されているため)。2 回目は、最初のリクエストが終了したため、(2 番目のリクエストが別のスレッドで実行されている間に) 表示されます。等々。

URL コンテンツが読み込まれるとすぐに画面を更新するには、UIWebViewDelegate の -webViewDidFinishLoad メソッドを実装する必要があります。そのメソッドでは、URL の読み込みが完了していることがわかるので、そこで Web ビューを更新すると、コンテンツが表示されるはずです。

于 2012-11-05T18:37:08.913 に答える