2009-04-18 7 views
0

Ich habe eine Nav-basierte App. Sobald eine Zeile in einer Tabellenansicht geklickt wird, schiebe ich ein UIWebView. Das UIWebView enthält Weblinks. Der Benutzer klickt auf einen Link, der die externe Webseite darstellt. Das alles passiert in meiner App. Die obere Navigationsleiste hat sich durch Klicken auf einen Link, der die externe Webseite darstellt, nicht geändert. Sobald der Benutzer jedoch auf die obere linke Navigationsschaltfläche klickt, kehrt er zur Tabellenansicht und nicht zum ursprünglichen UIWebView zurück. Wie kann ich mich mit der Navigationsschaltfläche verbinden und den Benutzer zurück zum ursprünglichen UIWebView versetzen, wenn er von einem externen Link aus klickt?Fang zurück Knopfnavigationsereignis

Antwort

2

Sie können über Änderungen am Navigationscontroller benachrichtigt werden, aber ich glaube nicht, dass Sie sie verhindern können (Protokoll UINavigationControllerDelegate).

Eine Möglichkeit, dies zu lösen, ist ein Objekt einzurichten, um die Delegierten (UIWebViewDelegate-Protokoll) der Webansicht und implementieren:

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

hier keine Rückkehr auf den Link in der Webansicht, Hand die Anfrage über zu vermeiden Öffnung zu einem Webview in einem zweiten Ansicht-Controller, und schieben Sie diesen zweiten Ansicht-Controller auf dem Navigations-Controller-Stack.

Auf diese Weise müssen Sie die Rückwärtsnavigation nicht abfangen, aber die UI verhält sich wie der Benutzer erwartet.