如何以编程方式解除UIWebView的上下文菜单?

问题描述:

我有一个iPad应用程序,其中一个UIWebView正在加载一个html页面,该页面由一个href标记内的n个电话号码组成。 点击这些电话号码iOS默认contextual菜单,如弹出窗口控制器正在显示3个默认选项,如---发送消息,添加到联系人和复制。如何以编程方式解除UIWebView的上下文菜单?

在特定的时间点,我只是弹出所有UIViewControllerrootViewController,所以如果当屏幕上显示此contextual菜单得到执行这个动作那么它是不是即使在视图来rootViewController都得到驳回从包含电话号码的UIWebView的视图。我想这是因为contextual菜单显示从UIWindow(如UIAlertView)。

我想以编程方式在此处解除或隐藏此contextual菜单。

我试图通过以下的尝试,以实现这一点,

1)在viewDidDisappear

[UIMenuController sharedMenuController].menuVisible = NO; 

2)I试图通过快速列举像下面,

for (UIView *subView in view.subviews){ 
     if ([subView isKindOfClass:[UIPopoverController class]]) { 
      [(UIPopoverController *)subViews dismissPopoverAnimated:YES]; 
     } 
    } 
//similiarly I tried by checking for UIMenuController as well 

无的上述尝试成功实现了这一点。 任何人都可以让我知道如何以编程方式解除contextual菜单UIWebView

任何帮助提前感谢。

之前弹出到根视图控制器,你可以使用

的Objective-C:

[self dismissViewControllerAnimated:NO completion:nil]; 

斯威夫特:

self.dismissViewControllerAnimated(false, completion: nil) 

摆脱上下文菜单中。

+0

感谢您的回复,但是这并没有为我工作:-(我的问题是在弹出视图控制器之前,上下文菜单已经在屏幕上,并且viewWillDisappear即使解除当前视图控制器或弹出到rootview控制器,屏幕上的弹出窗口仍然存在于屏幕上,因为它被添加到iOS的窗口中我想我喜欢UIAlertViews –

+0

我设法重新创建了问题并通过将其放入包含Web视图的视图控制器中进行了修复。啪根的整个动作是那么 self.dismissViewControllerAnimated!(假,完成:无) self.navigationController .popToRootViewControllerAnimated(真) 你确定你在驳回了视图控制器 正确的位置? – bjornorri

+0

是我以同样的方式仍然没有运气:( –