Отслеживание события навигации по кнопке возврата
-
11-09-2019 - |
Вопрос
У меня есть навигационное приложение.Как только строка нажата в tableview, я нажимаю UIWebView.UIWebView содержит веб-ссылки в нем.Пользователь нажимает на ссылку, которая отображает внешнюю веб-страницу.Все это происходит в моем приложении.Верхняя панель навигации не изменилась при нажатии на ссылку, которая отображает внешнюю веб-страницу.Однако, как только пользователь нажимает верхнюю левую навигационную кнопку, он возвращается к tableview, а не к исходному UIWebView.Как я могу подключиться к кнопке возврата навигации и вернуть пользователя к исходному UIWebView, если он переходит по внешней ссылке?
Решение
Вы можете получать уведомления об изменениях контроллера навигации, но я не верю, что вы можете предотвратить их (протокол UINavigationControllerDelegate).
Один из способов решить эту проблему - настроить объект в качестве делегата webview (протокол UIWebViewDelegate) и реализовать:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
Здесь верните NO чтобы избежать открытия ссылки в webview, передайте запрос webview во втором контроллере представления и поместите этот второй контроллер представления в стек контроллеров навигации.
Таким образом, вам не нужно перехватывать обратную навигацию, но пользовательский интерфейс ведет себя так, как ожидает пользователь.