Pregunta

Tengo una aplicación basada NAV. Una vez que se hace clic en una fila en un tableview, empujo un UIWebView. El UIWebView tiene enlaces a las webs en el mismo. El usuario hace clic en un enlace, que hace que la página web externa. Todo esto sucede dentro de mi aplicación. La barra de navegación superior no ha cambiado con el clic de un enlace que hace y la página web externa. Sin embargo, una vez que el usuario hace clic en el botón superior izquierdo de navegación, que se remontan a la tableview en lugar de la UIWebView inicial. ¿Cómo puedo conectar hasta el botón de navegación hacia atrás y poner al usuario de vuelta a la UIWebView inicial si hacen clic de seguir un enlace externo?

¿Fue útil?

Solución

Se le puede notificar cambios de mando de navegación, pero yo no creo que se puede evitar que sucedan (protocolo UINavigationControllerDelegate).

Una manera de resolver esto es la creación de un objeto para ser delegado (protocolo UIWebViewDelegate) de la vista web y poner en práctica:

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

Aquí volver NO para evitar abrir el enlace en la vista web, la mano la solicitud a una vista web en un segundo controlador de vista, y empujar este segundo controlador de vista en la pila controlador de navegación.

De esta manera usted no tiene que interceptar la navegación hacia atrás, pero la interfaz de usuario se comporta como el usuario espera.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top