尽管设置了委托并且正在调用方法,但WebView仅显示白色

时间:2013-11-13 01:05:37

标签: ios uiwebview

我有一个viewcontroller,可以在视图中加载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连接到委托和此属性。问题是无论我尝试什么网址(我在浏览器中都尝试过它们),网页视图只会返回一个白色屏幕。已经调用了所有委托方法,我知道因为我登录到控制台。有谁知道如何解决这个或我做错了什么。

2 个答案:

答案 0 :(得分:1)

从您的代码 -

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

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

因此无需再次实例化webview -

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

从代码中删除上面的行并进行测试。应该工作!

答案 1 :(得分:0)

嗯,这个问题的修复在我看来非常简单。

您没有为网络视图设置任何框架。请尝试以下方法:

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

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

<强>更新

我发现您没有将网络视图添加为子视图。调用loadRequest:

后添加以下行
[self.view addSubview:self.webView];

希望这有帮助!