当我收到一个动作时,我试图从网页视图中更改网址,该动作由下面的方法处理。该方法有效,但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"];
有什么建议吗?
由于
答案 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];
}