iOS在新的WebView中打开WebView href

时间:2014-02-19 18:30:51

标签: ios uiwebview nsurlrequest

我正在构建一个使用SWRevealViewController显示滑出菜单的iOS应用程序。

在我的幻灯片菜单中,我有一个包含一些链接的WebView。当用户点击链接时,我希望SWRevealViewController向后滑动(我可以很容易地做到这一点),并且在MainViewController WebView中打开URL(对我来说不是那么容易)。

如果可能的话,我想确保在SWRevealViewController中URL根本不会改变。只需启动操作即可在MainViewController中打开URL。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

  1. 将UIWebViewDelegate添加为视图控制器实现的协议。
  2. 将自己设置为UIWebView的委托
  3. 将方法- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType添加到视图控制器。
  4. 从此方法返回NO(除非是用于初始页面加载)并捕获URL以导航到另一个视图控制器。
  5. 在标题中添加UIWebViewDelegate协议

    @interface MyViewController : UIViewController <UIWebViewDelegate>
    

    在你的viewDidLoad中设置委托(假设你有一个用于webView的@property,其中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;
    }