gpt4 book ai didi

iphone - iOS 从另一个 View Controller 加载 UIWebView 中的网页

转载 作者:行者123 更新时间:2023-11-29 03:37:43 24 4
gpt4 key购买 nike

我有一个选项卡式应用程序,其中一个选项卡包含 UIWebView,第二个选项卡包含 TableView Controller 。

我正在努力做到这一点,以便当我点击表格中的一行时,它会将我带到另一个选项卡并加载一个网页。

这是我的 Storyboard: My Storyboard

这是我的 WebView 实现:

-(void)loadAViewer:(NSURL*)viewerURL
{
NSURLRequest *requestObj = [NSURLRequest requestWithURL:viewerURL];
[sfnViewer loadRequest:requestObj];
}

然后在 TableView 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 loadAViewer:viewerURL];

[tableView deselectRowAtIndexPath:indexPath animated:YES];
[self.tabBarController setSelectedIndex:0];

}

目前没有任何反应。我转到了另一个选项卡,但 UIWebView 是空白的 - 没有页面加载,但它也没有崩溃。

//Edit - 根据 Steve 的回答所做的更改

在此基础上我添加了 @property(强,非原子)NSURLviewerUrl;在我的 UIWebView 选项卡的 .h 文件中。

我已经在 .m 中合成了它,并将其添加到我的 viewDidLoad 方法中。

NSURLRequest *requestObj = [NSURLRequest requestWithURL:viewerURL];
[sfnViewer loadRequest:requestObj];

我现在在 TableView 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];

}

还是没有效果。

最佳答案

它可能未加载,因为当您调用 loadAViewer: 时, View 本身尚未加载,因此 sfnViewer 导出不会连接到 UIWebView 在你的 Storyboard中。

您可以通过检查 loadAViewer: 中的 sfnViewer 是否为零来确认这一点。

如果是这种情况,您必须在 ViewerFirstViewController 上定义 NSURL 属性并分配给该属性,而不是调用 loadAViewer:。然后在 viewWillAppear: 方法中,您应该将 URL 加载到 sfnViewer 中。

但是,这将导致每次访问选项卡时重新加载 Web View ,您可以通过检查 viewerURL 是否与 Web View 中当前使用的 URL 不同来避免这种情况:[sfnViewer.request.URL isEqual:self.viewerURL],如果相同则不创建/加载请求。

关于iphone - iOS 从另一个 View Controller 加载 UIWebView 中的网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18919449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com