2014-02-19 3 views
0

Я создаю приложение iOS, которое использует SWRevealViewController для отображения выпадающих меню.iOS Open WebView href в новом WebView

В моем слайд-меню у меня есть WebView, который содержит некоторые ссылки. Когда пользователь нажимает на ссылку, я хочу, чтобы SWRevealViewController отскакивал назад (я могу сделать это достаточно легко), и URL-адрес открывается в MainViewController WebView (не так просто для меня).

Я хочу, чтобы убедиться, что URL-адрес вообще не изменяется в SWRevealViewController. Просто запустите действие, чтобы открыть URL-адрес в MainViewController.

Как я могу это достичь?

ответ

1
  1. Добавить UIWebViewDelegate в качестве протокола, который реализует ваш контроллер.
  2. Укажите себя как делегат UIWebView
  3. Добавьте метод - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType к вашему контроллеру.
  4. Откажитесь от этого метода (если это не для начальной загрузки страницы) и захватите URL-адрес, чтобы перейти в другой контроллер представления.

В вашем заголовке добавить протокол UIWebViewDelegate

@interface MyViewController : UIViewController <UIWebViewDelegate> 

В вашей viewDidLoad установить делегат (Предполагая, что у вас есть @property для WebView с IBOutlet установлен в UIWebView)

self.webView.delegate = self; 

Затем добавьте метод делегирования для загрузки запросов.

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    NSString* urlStr = [[request URL] absoluteString]; 
    if(request == nil || [urlStr isEqualToString:@"http://YourInitialURL"]) 
    { 
     return YES; 
    } 

    //Use this url to change the other web view in your main view controller 
    NSURL* url = [request URL]; 

    return NO; 
} 
+0

не могли бы вы объяснить # 4 немного больше? возможно, пример кода. извините, я немного новичок – AdamTheRaysFan

+0

Я добавил код к ответу. –