0

我有一个视图控制器,它在视图中加载了一个 webView 确实加载了

@synthesize webView = _webView;

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    self.webView = [[UIWebView alloc] init];
    [self.webView setDelegate:self];
    NSString *string = @"http://www.google.com";
    NSURL *url = [NSURL URLWithString:string];
    NSLog(@"The URL is %@", url);
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    NSLog(@"The request is %@", request);
    NSLog(@"webview delegate is %@", self.webView.delegate);
    NSLog(@"webview is %@", self.webView);
    [self.webView loadRequest:request];
}

当我调试时一切正常,这意味着没有任何东西返回零。我像这样在 .h 文件中声明了该属性

@property (nonatomic, retain) IBOutlet UIWebView *webView;

我也试过

@property (nonatomic, strong) IBOutlet UIWebView *webView;

并且 IB 中的 WebView 连接到委托和此属性。问题是无论我尝试什么 url(我在浏览器中都尝试过),web 视图只返回一个白屏。所有的委托方法都被调用了,我知道是因为我登录到了控制台。有谁知道如何解决这个问题或我做错了什么。

4

2 回答 2

1

从你的代码 -

@property (nonatomic, retain) IBOutlet UIWebView *webView;

由于您已将 webview 连接到插座,因此 webview 的实例是在您的 Nib 取消归档后创建的。

所以不需要再次实例化 webview -

self.webView = [[UIWebView alloc] init];

从您的代码中删除上述行并对其进行测试。应该管用!

于 2013-11-13T02:06:45.733 回答
0

好吧,在我看来,这个问题的解决方法非常简单。

您没有为 Web 视图设置任何框架。尝试以下操作:

self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(0,0,500,500)];

当然,您的 Web 视图的实际尺寸可能会有所不同。你必须自己调整它。

更新

我看到您没有将 Web 视图添加为子视图。在调用后添加以下行loadRequest:

[self.view addSubview:self.webView];

希望这可以帮助!

于 2013-11-13T01:09:53.910 回答