2014-02-19 169 views
0

我正在構建一個使用SWRevealViewController顯示滑出式菜單的iOS應用程序。iOS在新的WebView中打開WebView href

在我的滑出菜單中,我有一個包含一些鏈接的WebView。當用戶點擊鏈接時,我想讓SWRevealViewController滑回去(我可以做到這一點很簡單),並且URL在MainViewController WebView中打開(對我來說不是那麼容易)。

我想確保,如果可能的話,URL在SWRevealViewController中根本不會改變。只需啓動在MainViewController中打開URL的操作即可。

我該如何做到這一點?

回答

1
  1. 將UIWebViewDelegate添加爲視圖控制器實現的協議。
  2. 將自己設置爲UIWebView的代表
  3. 將方法- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType添加到您的視圖控制器。
  4. 從此方法返回NO(除非它用於初始頁面加載)並捕獲URL以導航到另一個視圖控制器。

在你的頭添加UIWebViewDelegate協議

@interface MyViewController : UIViewController <UIWebViewDelegate> 

在您的viewDidLoad中設置委託(假設你有一個與一個IBOutlet web視圖的@property設置爲一個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

我給代碼添加了答案。 –