2012-01-23 141 views
1

我試圖將十六進制顏色值從objectiveC傳遞給Javascript。我正在顯示一個圖表,我正在嘗試將顏色傳遞給javascript,以便我不需要在我的html頁面中對其進行硬編碼。將Xcode中的十六進制顏色值傳遞給Javascript

這是我做的 -

在我的.m文件,

NSArray *colorArray = [NSArray arrayWithObjects:@"FFFFFF",@"000000", nil]; 

colorString = [[colorArray valueForKey:@"description"] componentsJoinedByString:@","]; 

在我webViewDidFinishLoad功能,

[graphView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"methodName1([%@])", colorString]]; 

然而,JavaScript是不能夠接受的值。

在我的Javascript函數中,我應該如何接受值 - FFFFFF和000000,以便我可以使用它們。

我想使用的顏色這樣的 -

line1.Set('chart.colors', ['FF0000', '000000']); 

那裏而不是給的十六進制值在那裏,我想從objC得到它。

更新 -

下面是javascript函數我用 -

function methodName1(val) 
{ 
    alert("hi"); 
} 

但是,函數甚至不被調用。我覺得這個問題是我傳遞值的方式..

如果有人能幫助我解決這個問題,那將會很棒。

回答

1

你打電話

methodName1([FFFFFF,000000]); // will fail since FFFFFF is not defined 

但是你要

methodName1(['FFFFFF','000000']); 
+0

如何從objc中調用此函數?我會這樣做 - [graphView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@「methodName1('[%@]')」,colorString]]; – learner2010

+0

以及..工作! [graphView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@「methodName1('[%@]')」,colorString]];在字符串傳遞值之前放置'...' – learner2010

+0

您需要確保引用每個單獨的參數。嘗試'colorstring = [NSString stringWithFormat:@「'%@'」,[colorArray componentsJoinedByString:@「','」]];' – user123444555621

0

您可能需要在每種顏色之前添加一個「#」字符。

+0

而且,是啊... 'colorString = [colorArray componentsJoinedByString:@ 「」];' 會足夠。 – Ievgen

+0

感謝您的答覆..但是,我仍然面臨的問題..我更新了我的問題與我使用的函數... – learner2010

+0

此外,如果我通過偶數字符串像NSArray * colorArray = [NSArray arrayWithObjects:@「a 「,@」b「,nil];該函數不會被調用.. – learner2010

相關問題