0

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];

}

それでも役に立たない。

4

1 に答える 1