Frage

Ich habe eine nav-basierte Anwendung. Sobald eine Zeile in einem Tableview geklickt wird, schiebe ich eine UIWebView. Die UIWebView hat Web-Links in ihm. Der Benutzer klickt auf einen Link, der die externe Webseite macht. Dies geschieht alles in meiner app. Die obere Navigationsleiste hat nicht mit dem Anklicken eines Links geändert, die und externe Webseite macht. Sobald jedoch der Benutzer die obere linke nav Schaltfläche klickt, gehen sie zurück zu dem Tableview eher als die anfänglichen UIWebView. Wie kann ich mit der nav Zurück-Taste verdrahten und den Benutzer auf die anfängliche UIWebView setzen zurück, wenn sie aus folgenden einem externen Link sind, klicken?

War es hilfreich?

Lösung

Sie können von Navigationscontroller Änderungen benachrichtigt werden, aber ich glaube nicht, dass du sie nicht passiert (UINavigationControllerDelegate Protokoll) verhindern kann.

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

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

Rückkehren hier NO öffnete den Link in der Webansicht zu vermeiden, Hand über die Anforderung an einen webview in einem zweiten View-Controller, und drücken Sie diesen zweiten View-Controller auf dem Navigationscontroller-Stack.

Auf diese Weise müssen Sie nicht rückwärts Navigation abfangen, aber die Benutzeroberfläche verhält sich wie der Benutzer erwartet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top