2016-07-05 167 views
-1

我有一个UIWebView主要UIViewController它工作正常。我用这个命令来发送数据,并再次这一切都很好:从另一个视图调用Web视图控制器

[self.dWebView stringByEvaluatingJavaScriptFromString: myString]; 

的问题是,我添加了另一个UIViewControllerQRViewController),采用QR标签读取数据,我想送它以同样的方式。 这是我的代码在QRViewController但什么也没有发生:

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

是否有可能做这种方式?有什么遗漏吗?

在此先感谢。

回答

1

添加的NSString * STR对象添加到您的ViewController

传为:_viewController.str = qrString;

[self.dWebView stringByEvaluatingJavaScriptFromString:self.str];

这将工作

+0

谢谢,我也试过了。我解雇了QRViewController [self dismissViewControllerAnimated:YES completion:nil];我期望viewWillAppear或viewDidAppear在主ViewController将被调用来发送字符串,但他们不是。 – MorZa

+0

你有没有试过在块中写代码? [self dismissViewControllerAnimated:YES completion:^ { [self.dWebView stringByEvaluatingJavaScriptFromString:myString]; }]; –

+1

否则让委托人回传数据。它一定会奏效 –

1

你正在创建相同UIViewController类的第二个实例调用此代码:

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

_viewController不指着一个在屏幕上可见,这是一个新的当前未显示的副本。

您需要获取当前显示的前一个实例的句柄并将数据传回给它。这将取决于你如何构建这个应用程序。

例如:

  • 如果存在有模式,你将需要获得self.presentingViewController
  • 如果您使用navigationController,则可以访问其viewControllers属性以获取前一个的句柄。