我有一个需要打开Web视图的UITableViewController。

在我的职能中,我有:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

                LinkViewController *linkViewController = [[LinkViewController alloc] initWithNibName:@"LinkViewController_iPhone" bundle:nil];

                [linkViewController.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]]];

                [self.navigationController pushViewController:linkViewController animated:YES];

}


我已经连接了所有插座,并且没有收到任何警告,但是我看不到该页面上拉。

但是,如果我进入实际的LinkViewController文件并执行以下操作:

- (void)viewDidLoad
{
    [super viewDidLoad];

        NSString *urlAddress = @"http://www.google.com";

    //Create a URL object.
    NSURL *url = [NSURL URLWithString:urlAddress];

    //URL Requst Object
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];

    //Load the request in the UIWebView.
    [self.webView loadRequest:requestObj];
}


一切似乎都很好。我不懂为什么 ?

最佳答案

您应该在URL中添加LinkViewController属性。然后在表格视图控制器中执行以下操作:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    LinkViewController *linkViewController = [[LinkViewController alloc] initWithNibName:@"LinkViewController_iPhone" bundle:nil];
    linkViewController.URL = [NSURL URLWithString:@"http://www.google.com"];

    [self.navigationController pushViewController:linkViewController animated:YES];
}


现在在LinkViewController中,您可以执行以下操作:

- (void)viewDidLoad {
    [super viewDidLoad];

    //URL Requst Object
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:self.URL];

    //Load the request in the UIWebView.
    [self.webView loadRequest:requestObj];
}


您最初遇到的问题有两个:


在表视图控制器中,您正在访问webView属性,然后对其进行初始化。这就是为什么什么也没发生的原因。
您向外界暴露了LinkViewController的太多实现细节。如果您在应用程序的许多位置使用LinkViewController,则要求该类的每个用户都知道要创建URL,创建请求并告诉内部Web视图开始加载。所有这些逻辑都属于LinkViewController内部。现在,该类的每个用户都只需要知道设置一个简单的URL属性。

关于ios - 无法从另一个 View Controller 在WebView中显示URL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15180498/

10-10 23:25