アップデート
読み込みの問題を修正しました。カスタムセルクラスを使用していたため、ストーリーボードのテーブルビューセルの識別子を実際のクラス自体ではなく、カスタムセルの名前に設定しただけでした。ルーキーの間違い、ごめんなさい!
これにより、viewDidLoadメソッドでWebページが読み込まれない問題が修正されます。テーブルの行の選択に応じて正しいWebページが読み込まれるように、並べ替える必要があります。PrepareForSegueはこれに理想的ですか?ありがとう
元の投稿
私のアプリには、開いたときにsecondviewcontrollerにWebビューをロードするオブジェクトを一覧表示するテーブルビューを備えたFirstViewControllerがあります。
したがって、didSelectRowAtIndexPathメソッドには、現在次のものがあります。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{ [self performSegueWithIdentifier:@"Detail" sender:self];
NSIndexPath *selectedRowIndex = [self.tableView indexPathForSelectedRow];
DetailViewController *detailViewController = [DetailViewController alloc];
detailViewController.urlToGet = @"www.google.com"
}
もちろん、DetailViewControllerには、デリゲートとwebViewアウトレットが設定されているストーリーボードにviewcontrollerオブジェクトがあります。
DetailViewControllerクラス自体で、これをviewDidLoadで試して、Webサイトを表示しました。
NSString *fullURL = @"http://www.google.com";
NSURL *url = [NSURL URLWithString:fullURL];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webView loadRequest:requestObj];
しかし、私が得るのは空白のWebビューだけです。
正常に機能する新しいプロジェクトでチュートリアルを試し、それをコピーしました。残念ながら、現時点ではここでは機能しません。
また、prepareForSegueを試しましたが(情報が得られるため)、これは機能しませんでした。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
/*
When a row is selected, the segue creates the detail view controller as the destination.
Set the detail view controller's detail item to the item associated with the selected row.
*/
if ([[segue identifier] isEqualToString:@"Detail"]) {
DetailViewController *detailViewController = [segue destinationViewController];
detailViewController.urlToGet = @"www.google.com";
}
}
詳細の識別子を持つ2つのViewController間のセグエ。
viewDidLoadで指定されたWebサイトをロードするオブジェクトを取得できない理由はありますか?
ありがとう