如何以编程方式解除UIWebView的上下文菜单?
问题描述:
我有一个iPad应用程序,其中一个UIWebView
正在加载一个html页面,该页面由一个href标记内的n个电话号码组成。 点击这些电话号码iOS默认contextual
菜单,如弹出窗口控制器正在显示3个默认选项,如---发送消息,添加到联系人和复制。如何以编程方式解除UIWebView的上下文菜单?
在特定的时间点,我只是弹出所有UIViewController
到rootViewController
,所以如果当屏幕上显示此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)
摆脱上下文菜单中。
感谢您的回复,但是这并没有为我工作:-(我的问题是在弹出视图控制器之前,上下文菜单已经在屏幕上,并且viewWillDisappear即使解除当前视图控制器或弹出到rootview控制器,屏幕上的弹出窗口仍然存在于屏幕上,因为它被添加到iOS的窗口中我想我喜欢UIAlertViews –
我设法重新创建了问题并通过将其放入包含Web视图的视图控制器中进行了修复。啪根的整个动作是那么 self.dismissViewControllerAnimated!(假,完成:无) self.navigationController .popToRootViewControllerAnimated(真) 你确定你在驳回了视图控制器 正确的位置? – bjornorri
是我以同样的方式仍然没有运气:( –