2016-07-05 7 views
-1

Ich habe eine UIWebView auf der Haupt UIViewController, die gut funktioniert. Ich verwende diesen Befehl, um Daten zu senden und wieder es ist alles gut:Aufruf der Web-Ansicht von einer anderen AnsichtController

[self.dWebView stringByEvaluatingJavaScriptFromString: myString]; 

Das Problem ist, dass ich eine andere UIViewController (QRViewController) hinzugefügt, die Daten von einem QR-Tag liest, und ich will ihm die gleiche Art und Weise senden. Dies ist mein Code am QRViewController aber nichts passiert:

ViewController* _viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; 
[_viewController.dWebView stringByEvaluatingJavaScriptFromString: qrString]; 

Ist es möglich, es so zu tun? Fehlt etwas?

Vielen Dank im Voraus.

Antwort

1

hinzufügen NSString * str Objekt in den Viewcontroller

Pass als: _viewController.str = qrString;

[self.dWebView stringByEvaluatingJavaScriptFromString: self.str]; durch den Aufruf dieser Code eine zweite Instanz derselben UIViewController Klasse erstellen

Diese

+0

Danke, ich habe es auch versucht. Ich verwerfe den QRViewController mit [self-disneyViewControllerAnimated: YES completion: nil]; und ich erwarte, ViewWillAppear oder ViewDidAppear auf dem Haupt-ViewController wird aufgerufen, um die Zeichenfolge zu senden, aber sie sind nicht. – MorZa

+0

haben Sie versucht, Ihren Code im Block zu schreiben? [self entlassenViewControllerAnimated: YES Abschluss:^{ [self.dWebView stringByEvaluatingJavaScriptFromString: myString]; }]; –

+1

Anderenfalls machen Sie einen Delegaten, um die Daten zurückzugeben. Es wird sicherlich funktionieren –

1

arbeiten Sie:

ViewController* _viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; 

_viewController zeigen ist nicht auf die auf dem Bildschirm sichtbar, ist es eine neue Kopie, die gerade nicht angezeigt wird.

Sie müssen die vorherige Instanz, die gerade angezeigt wird, im Griff haben und die Daten an sie zurückgeben. Dies hängt davon ab, wie Sie diese App erstellt haben.

Zum Beispiel:

  • Falls vorhanden modal, müssen Sie die self.presentingViewController bekommen.
  • Wenn Sie einen navigationController verwenden, können Sie auf seine viewControllers-Eigenschaft zugreifen, um eine Handhabe an der vorherigen zu bekommen.
Verwandte Themen