Щелчок по ссылке в UIWebView помещает в стек NavigationView. - PullRequest
5 голосов
/ 28 сентября 2010

По сути, я хотел бы знать, как перехватить щелчок в веб-просмотре, а затем всплыть новое представление с навигационной панелью вверху (с кнопкой возврата) и контентом, по которому я нажимал ссылку..

В настоящее время у меня есть шаблон панели вкладок с 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;
    }
}

Любая помощь будет принята с благодарностью, и если мне потребуется предоставить больше контекста, я буду рад это сделать.Спасибо.

1 Ответ

5 голосов
/ 28 сентября 2010

Этот вопрос задавался много раз раньше.Пожалуйста, посмотрите на эту страницу , это почти точно то, что вам нужно, просто измените [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];   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...