我有一个选项卡式应用程序,其中一个选项卡包含一个 UIWebView 和一个带有表视图控制器的第二个选项卡。
我正在努力做到这一点,以便当我单击表格中的一行时,它会将我带到我的另一个选项卡并加载一个网页。
这是我的故事板:
这是我对 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 (strong, nonatomic) NSURL viewerUrl; 在我的 UIWebView 选项卡的 .h 文件中。
我已在 .m 中合成它并将其添加到我的 viewDidLoad 方法中。
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 setViewerUrl:viewerURL];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
[self.tabBarController setSelectedIndex:0];
}
仍然无济于事。