2010-03-09 4 views
2

Я хочу создать простое приложение, в котором UIWebView с настраиваемым контентом будет иметь несколько ссылок на другие страницы с похожим контентом (и панель навигации сверху, с помощью только кнопки «Назад»). Я прочитал ответы на вопрос this, однако я не уверен, что должен сделать это в своем приложении, так как пользователь может пройти достаточно глубоко, и я буду создавать новые веб-просмотры все время. Что может быть лучшей практикой для такого поведения?Как открыть любую ссылку из UIWebView в новый интерфейс UIWebView?

Спасибо!

+0

Похоже на то, что у другого вопроса есть ответы, которые вам нужно будет сделать, что вы просите. Можете ли вы рассказать о том, почему вам нужно больше одного UIWebView? –

+0

Извините, я не был достаточно ясен. Каждый раз, когда выбирается ссылка, я хочу переместить новую страницу в стек навигации, чтобы кнопка «Назад» переместилась на предыдущую страницу. Таким образом, я думал о создании нового UIWebView. Конечно, я думаю, что должен быть лучший и более элегантный способ, но я бы хотел получить помощь и советы по этому поводу. – phi

ответ

2

Я рекомендую прослушивание:

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

и всегда возвращается YES (так WebView будет продолжаться с запрашиваемой ссылкой) при сохранении каждого запроса в качестве NSMutableArray создать стек истории посещенных пользователя.

Это позволит вам обновить текст кнопки назад с заголовком предыдущей страницы (сокращенно, конечно).

Если вам просто нужно иметь кнопку «Назад» без ярлыка, у вас может быть простая кнопка, подключенная к методу - (void) goBack; UIWebView.

+0

Спасибо за это! С помощью этого подхода можно ли иметь анимированный переход при открытии новой ссылки? Наверное, нет, правда? – phi

+0

Я пробовал свой код, и он работает, но мне бы очень хотелось, чтобы эта анимация перехода, поэтому я ссылался на UINavigationBar на мой оригинальный пост. Кто-нибудь имеет представление об этом? – phi

+0

Я предполагаю, что вы ссылаетесь на анимацию «слайд-в-в-правом» при нажатии нового контроллера вида на стек навигационного контроллера. В этом случае это было бы невозможно, если вы не подделали его на веб-странице с помощью javascript. Вы можете получить эффект анимации, вернув NO в сообщение 'shouldStartLoadWithRequest:' и нажав новый UIWebView, но создание новых интерфейсов UIWebView для каждой ссылки будет дорого стоить. –

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