私はスプリットビューアプリケーションを持っています。MasterView は UITableViewController であり、詳細ビューは Web ビューです。エントリを選択すると、マスター ペインに別のテーブル ビュー (複雑さを避けるためにもう 1 つの tableviewcontroller を使用して作成) が表示され、詳細ビューにはエントリに関連するページが表示されます。このくらいはうまくいっています。
2番目のテーブルビューでも同じことが必要です。つまり、エントリを選択すると、それに応じて詳細ビューが更新されます。しかし、更新されていません。最初の tableViewController クラスで次の関数を作成しました。
-(void) display:(NSString*)theUrl
{
NSLog(@"%@", theUrl);
NSURL *myUrl = [NSURL URLWithString:theUrl];
NSURLRequest *request = [NSURLRequest requestWithURL:myUrl];
splitViewDetailViewController *detailViewController =
self.detailViewController;
detailViewController.webView.scalesPageToFit = YES;
[detailViewController.webView loadRequest:request];
}
私は secondTableViewController からこの関数を呼び出していますが、呼び出されていますが、詳細ビューは更新されていません。secondTableViewController の didSelectRowAtIndex メソッドで、私はこれをやっています:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *urlString=@"http://www.google.com";
NSURL *myUrl = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:myUrl];
splitViewSecondViewController *secondDetailViewController = [[splitViewSecondViewController alloc] init];
secondDetailViewController.detailViewController=self.detailViewController;
[self.navigationController pushViewController:secondDetailViewController animated:YES];
self.detailViewController.webView.scalesPageToFit = YES;
[self.detailViewController.webView loadRequest:request];
}
しかし、次の実行時エラーが発生します。
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSCFConstantString stringByAppendingString:]: nil argument