Вопрос

У меня есть навигационное приложение.Как только строка нажата в tableview, я нажимаю UIWebView.UIWebView содержит веб-ссылки в нем.Пользователь нажимает на ссылку, которая отображает внешнюю веб-страницу.Все это происходит в моем приложении.Верхняя панель навигации не изменилась при нажатии на ссылку, которая отображает внешнюю веб-страницу.Однако, как только пользователь нажимает верхнюю левую навигационную кнопку, он возвращается к tableview, а не к исходному UIWebView.Как я могу подключиться к кнопке возврата навигации и вернуть пользователя к исходному UIWebView, если он переходит по внешней ссылке?

Это было полезно?

Решение

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

Один из способов решить эту проблему - настроить объект в качестве делегата webview (протокол UIWebViewDelegate) и реализовать:

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

Здесь верните NO чтобы избежать открытия ссылки в webview, передайте запрос webview во втором контроллере представления и поместите этот второй контроллер представления в стек контроллеров навигации.

Таким образом, вам не нужно перехватывать обратную навигацию, но пользовательский интерфейс ведет себя так, как ожидает пользователь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top