Básicamente, me gustaría saber cómo interceptar un clic en un webview y tener una nueva visión emergente que tiene una barra de navegación en la parte superior (con un botón «atrás») y el contenido del enlace que he hecho clic.

Actualmente tengo una barra de pestañas de la plantilla con 5 fichas y cada ficha está a la vista denavegación y dentro de cada una de esas pestañas son las vistas que contienen un UIWebView. Esta es la forma en que manejamos los enlaces:

-(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;
    }
}

Cualquier ayuda sería muy apreciada y Si tengo que dar más contexto estaré feliz de hacerlo. Gracias.

OriginalEl autor SalsaSalsa | 2010-09-28

1 Comentario

  1. 5

    Esta pregunta se ha hecho muchas veces antes. Por favor, eche un vistazo a esta página, es casi exactamente lo que usted necesita, sólo cambia el [BrowserViewController openBrowserWithUrl:url]; a lo que usted necesita para empujar a su nuevo ViewController a la pila de navegación. Podría parecer que:

    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 – Gracias por la info pero creo que no estoy entendiendo el concepto. Estoy en la vista de navegación que contiene una vista que contiene un webview. Quiero clic en un enlace que abre una nueva vista en la pila de navegación. ¿Cómo puedo hacer esto? Tal vez no estoy agarrando el proceso conceptual en el que debería estar haciendo esto. 🙁
    ¿Usted, en general, sabe cómo agregar una nueva vista a la pila de la UINavigationController?
    Yo creo que no. Si no es mucho problema ¿te importaría explicar?
    Allright. En primer lugar, usted está hablando de una vista denavegación y un WebView dentro de una Vista. Para que quede claro, la supuesta estructura sería la siguiente: UINavigationController contiene UIViewController contiene el WebView, al menos que yo sepa. A continuación, el ViewController que contiene el WebView deben ser WebViews delegado. Ahora puede insertar el código que he dado a usted en el primer lugar. Para el resto, voy a editar la respuesta ahora mismo.
    Una tab bar controller que tiene 5 pestañas, cada una de estas fichas se establecen en un controlador de navegación. Cada uno de los controladores de navegación contiene una vista que contiene un webView.

    OriginalEl autor Phlibbo

Dejar respuesta

Please enter your comment!
Please enter your name here