【问题标题】:Clicking a link in UIWebView pushes onto the NavigationView stack单击 UIWebView 中的链接会推送到 NavigationView 堆栈
【发布时间】:2011-04-18 10:16:00
【问题描述】:

基本上,我想知道如何拦截 web 视图中的点击,然后弹出一个新视图,顶部有一个导航栏(带有后退按钮),内容是我点击的链接.

我目前有一个带有 5 个选项卡的选项卡栏模板,每个选项卡当前都设置为 NavigationView,每个选项卡内部都是包含 UIWebView 的视图。这就是我处理链接的方式:

-(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request   navigationType:(UIWebViewNavigationType)navigationType {

    NSURL *url = request.URL;
    NSString *urlString = url.absoluteString;
    NSRange page = [ urlString rangeOfString: @"/?page=" ];
    // URL is main page
    if ( [ urlString isEqualToString: @"http://somelink-yadayadayada.com/" ] ) {
        return YES;
    }
    // URL contains page number
    else if ( page.location != NSNotFound ) {
        return YES;
    }
    // URL is clicked link
    else {
        // THIS IS WHERE I NEED TO HAVE THE LINK OPEN THE NEW NAV VIEW.
        return NO;
    }
}

任何帮助将不胜感激,如果我需要提供更多背景信息,我将很乐意这样做。谢谢。

【问题讨论】:

    标签: iphone objective-c ios uinavigationcontroller


    【解决方案1】:

    这个问题已经被问过很多次了。请查看this page,它几乎正是您所需要的,只需将[BrowserViewController openBrowserWithUrl:url]; 更改为您需要将新的ViewController 推送到导航堆栈的任何内容。它可能看起来像这样:

    LatestView *latestView = [[LatestView alloc] initWithNibName:@"LatestView" bundle:nil]; 
    
    //Pass the URL here, depends on how you passed it into the WebView in the first place   
    
    // Add the ViewController to the stack
    [self.navigationController pushViewController:latestView animated:YES]; 
    [latestView release];   
    

    【讨论】:

    • Philibbo - 谢谢你的信息,但我想我不理解这个概念。我在一个导航视图中,其中包含一个包含 web 视图的视图。我想单击在导航堆栈中打开新视图的链接。我该怎么做呢?也许我没有掌握我应该这样做的概念过程。 :(
    • 一般来说,您知道如何将新视图添加到 UINavigationController 的堆栈吗?
    • 我猜不是。如果不麻烦你介意解释一下吗?
    • 好的。首先,您在谈论 View 中的 NavigationView 和 WebView。为了清楚起见,假定的结构是: UINavigationController 包含 UIViewController 包含 WebView,至少据我所知。然后,应将包含 WebView 的 ViewController 设为 WebViews 委托。现在您可以插入我一开始给您的代码。剩下的,我现在就编辑答案。
    • 一个标签栏控制器,有 5 个标签,每个标签都设置为一个导航控制器。每个导航控制器都包含一个包含 webView 的视图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-26
    • 2014-12-19
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多