无法在WebView中更改URL

时间:2016-10-18 00:27:45

标签: ios objective-c uiwebview

当我收到一个动作时,我试图从网页视图中更改网址,该动作由下面的方法处理。该方法有效,但webview网址永远不会更改。

- (void)viewDidLoad {
    [super viewDidLoad];
    myWebView.delegate = self;
    NSString *fullURL = @"http://cardapiomestre.com.br/beta";
    NSURL *url = [NSURL URLWithString:fullURL];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [myWebView loadRequest:requestObj];
}

方法:

-(void) setWebViewURL:(NSString*)url
{
    NSString *urlAddress = url;
    NSURL *essaUrl = [NSURL URLWithString:urlAddress];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:essaUrl];
    [self.myWebView loadRequest:requestObj];
}

来自setWebViewURL的网址会将其设为有效网址。我甚至试图手动设置网址,但它没有用。

我在AppDelegate.m上调用它:

ViewController* myScript = [[ViewController alloc] init];
[myScript setWebViewURL:@"http://google.com"];

有什么建议吗?

由于

1 个答案:

答案 0 :(得分:0)

在appDelegate中,而不是:

ViewController* myScript = [[ViewController alloc] init];
[myScript setWebViewURL:@"http://google.com"];

在这里,您要创建视图控制器的新实例,这样您的webView将为零,因此您没有看到预期的结果。

您应该在app delegate中发布通知:

[[NSNotificationCenter defaultCenter] postNotificationName:@"refreshWebView" object:nil];

并在您的viewController中,收听此通知:

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadWebView) name:@"refreshWebView" object:nil];

并在视图控制器中定义方法:

-(void)reloadWebView{
    NSString *urlAddress = @"your-url";
    NSURL *essaUrl = [NSURL URLWithString:urlAddress];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:essaUrl];
    [self.myWebView loadRequest:requestObj];
}