与UIWebview表单popover通信?

时间:2014-02-22 21:10:17

标签: javascript ios uitableview uiwebview uipopovercontroller

我正在尝试使用包含iPad中的NSArray字体的UITableView从弹出窗口调用javascript函数。我遇到的问题是每当我从didselectrowatindexpath调用函数时,它都无法在UIWebView中进行任何操作。我能够在NSLog中获取相应的信息,但不知何故,两个视图之间的链接失败了。如果我将函数分配给包含UIWebView的视图中的按钮,一切都很好。我正在使用故事板,popovervew和UIWebView共享相同的viewController类。这可能是我忽略的非常简单的事情,但无论出于何种原因我都被困住了。此外,如果我调用其他功能,如警报视图,一切都按预期工作。我真诚地感谢你对这个问题的任何帮助。感谢

以下是我在didselectrowatindexpath中调用javascript函数的方法:

- (void) tableView: (UITableView *) theTableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath {

UITableViewCell *selectedCell = [self.myTableView cellForRowAtIndexPath:indexPath];
NSString *cellText1 = selectedCell.textLabel.text;

[myWebView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"tinymce.activeEditor.execCommand('fontName', false, '%@');", cellText1]];

    NSLog (@"%@", cellText1);


[self.myTableView deselectRowAtIndexPath: indexPath animated: YES];
}

以下是视图中按钮的代码,其中包含将字体设置为“Arial”的UIWebView:

-(IBAction)changeFont:(id)sender{
[myWebView stringByEvaluatingJavaScriptFromString:@"tinymce.activeEditor.execCommand('fontName', false, 'Arial');"];
}

1 个答案:

答案 0 :(得分:1)

我最终使用了NSNotification中心。我知道这不是最轻的方式,但它似乎是满足我特殊需求的最好(也许是唯一的)解决方案。我只是从popoverviewcontroller发布一个通知,并在viewcontroller中设置一个控制UIWebview的监听器。然后我在调用javascript函数的通知事件上触发一个动作。这对我来说都很好。我希望这也可以帮助别人。