Pergunta

Eu tenho um aplicativo baseado nav. Uma vez que uma linha é clicado em um tableview, eu empurro um UIWebView. O UIWebView tem links da web na mesma. O usuário clica em um link, o que torna a página externa. Isso tudo acontece dentro do meu aplicativo. A barra superior de navegação não mudou com o clique de um link que presta e página externa. No entanto, uma vez que o usuário clica no canto superior esquerdo botão de navegação, eles vão voltar para o tableview em vez do UIWebView inicial. Como posso ligar-se ao botão de navegação para trás e colocar a parte de trás do usuário ao UIWebView inicial se eles estão clicando de seguir um link externo?

Foi útil?

Solução

Você pode ser notificado das alterações controlador de navegação, mas eu não acredito que você pode evitar que isso aconteça (protocolo UINavigationControllerDelegate).

Uma maneira de resolver isso é a criação de um objeto para ser delegado (protocolo UIWebViewDelegate) do webview e implementar:

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

Aqui retornar NO para evitar abrir o link na webview, entregar a solicitação ao longo de um webview em um segundo controlador de vista, e empurre este segundo controlador de vista sobre a pilha de controlador de navegação.

Desta forma, você não tem que interceptar a navegação para trás, mas se comporta de interface do usuário como os espera dos usuários.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top