Улавливание события кнопки возврата - PullRequest
0 голосов
/ 19 апреля 2009

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

1 Ответ

2 голосов
/ 19 апреля 2009

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

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

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

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

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

...