2009-04-18 5 views
0

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

ответ

2

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

Одним из способов решения этой проблемы заключается в создании объекта быть делегатом (UIWebViewDelegate протокол) в WebView и реализации:

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

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

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

Смежные вопросы