2015-05-29 108 views
1

我有一個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

任何幫助提前感謝。

回答

0

之前彈出到根視圖控制器,你可以使用

的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

是我以同樣的方式仍然沒有運氣:( –

相關問題