将Javascript数组传递给UILabel - iOS

时间:2013-08-20 19:03:51

标签: javascript ios arrays xcode webview

我的应用中的本地HTML文件中有一个javascript数组:

//js

<script language="javascript">
    test = ["First menu item","second menu item", "third menu item"];
</script>

我希望将此数组传递给iOS中的UILabel。我怎么能这样做?

提前致谢!

1 个答案:

答案 0 :(得分:1)

我能够通过以下步骤完成此操作:

  1. 首先,只需一个变换你的javascript字符串数组 使用方法join()

  2. 的字符串
  3. 其次,使用webview的方法     stringByEvaluatingJavaScriptFromString:获取上面的字符串

  4. 最后,使用NSString的方法componentsSeparatedByString:     转换iOS字符串数组中的字符串。

  5. 现在,您只需将此数组用作UIPickerView的数据源。您可以看到如何执行此操作here

    这是代码的样子:

    你的javascript:

    <script language="javascript">
        var test = ["First menu item","second menu item", "third menu item"];
        var testString = test.join('#');
    </script>
    

    您的目标-C代码:

    NSString *testArrayString = [webView stringByEvaluatingJavaScriptFromString:@"testString"];
    NSArray *testArray = [testArrayString componentsSeparatedByString:@"#"]; 
    NSLog(@"%@", testArray);
    

    这是NSLog将打印的内容:

    2013-08-20 23:48:29.578 YourProject3633:c07] (
        "First menu item",
        "second menu item",
        "third menu item"
    )
    

    编辑:

    要在标签中显示数组内容,而不是UIPickerView,您可以(未经测试,但应该可以):

    self.myLabel.text = [NSString stringWithFormat:%@, testArray];
    

    或者只是用逗号再次连接数组的字符串,如下所示:

    self.myLabel.text = [testArray componentsJoinedByString:@","];
    

    我不知道是否有人有更好的解决方案,这是我想到的第一件事。如果它对你有所帮助,请告诉我。