UIWebView を含むタブと、Table View Controller を含む 2 番目のタブを備えたタブ付きアプリケーションがあります。
テーブルの行をクリックすると、他のタブに移動して Web ページが読み込まれるようにしようとしています。
これが私のストーリーボードです:
これは、Web ビューの私の実装です。
-(void)loadAViewer:(NSURL*)viewerURL
{
NSURLRequest *requestObj = [NSURLRequest requestWithURL:viewerURL];
[sfnViewer loadRequest:requestObj];
}
次に、テーブル ビュー コントローラーで次のようにします。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//Get the URL from plist
...
//Generate url, pass it in and switch to web view tab
viewerURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@/viewer?username=%@&pw=%@&%@", web, loc, user, pass, params]];
ViewerFirstViewController *viewerWebView = [[ViewerFirstViewController alloc] init];
[viewerWebView loadAViewer:viewerURL];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
[self.tabBarController setSelectedIndex:0];
}
現在、何も起こりません。別のタブに移動しましたが、UIWebView が空白です。ページは読み込まれませんが、クラッシュもしません。
//編集 - スティーブからの回答に基づいて行われた変更
これに基づいて、@property (強力で非アトミック) NSURL viewerUrl; を追加しました。UIWebView タブの .h ファイルに。
.m で合成し、これを viewDidLoad メソッドに追加しました。
NSURLRequest *requestObj = [NSURLRequest requestWithURL:viewerURL];
[sfnViewer loadRequest:requestObj];
Table View Controller では、これを実行しています。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//Get the URL from plist
...
//Generate url, pass it in and switch to web view tab
viewerURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@/viewer?username=%@&pw=%@&%@", web, loc, user, pass, params]];
ViewerFirstViewController *viewerWebView = [[ViewerFirstViewController alloc] init];
[viewerWebView setViewerUrl:viewerURL];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
[self.tabBarController setSelectedIndex:0];
}
それでも役に立たない。