2016-10-18 3 views
0

私は、以下の方法で処理されたアクションを受け取ったときに、webviewからURLを変更しようとしています。このメソッドは機能しますが、webviewのURLは決して変更されません。WebViewでURLを変更できません

- (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]; 
} 

URL setWebViewURLのPARAMからそれが有効なURLです。私は手動でURLを設定しようとしましたが、動作しませんでした。

私はAppDelegate.mにそれを呼び出す:

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

任意のアドバイスはありますか?代わりにやっての

おかげappDelegateで

+0

これは端末で試していますか?デリゲートメソッドにブレークポイントを設定し、新しいロード要求が発生したかどうかを確認します。 –

+0

@TejaNandamuri viewDidLoadでのみ機能します。私の方法ではない。 –

+0

viewDidLoadでメソッドを呼び出していますか? –

答えて

0

、:ここで

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

あなたのビューコントローラの新しいインスタンスを作成しているし、この方法によって、あなたのWebViewがnilになり、したがって、あなたが表示されません期待される結果。あなたはアプリのデリゲートで通知を掲示する必要があり

[[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]; 
} 
+0

ありがとう、たくさんの男!また、必要な情報を通知オブジェクトに渡すだけでした。 –

関連する問題