2015-05-29 3 views
1

У меня есть приложение для iPad, где UIWebView загружает страницу html, состоящую из n числа телефонных номеров в теге href. И при нажатии этих телефонных номеров iOS по умолчанию contextual Меню, подобное popover-контроллеру, отображается с тремя параметрами по умолчанию, такими как --- Отправить сообщение, Добавить в контакты и Копировать.Как программно отменить контекстное меню UIWebView?

В какой-то момент времени я просто выскакивают все UIViewController к rootViewController, поэтому, когда это действие становится невозможным, если это contextual меню отображается на экране, то это вовсе не получение уволен, даже если вид приходит rootViewController из которого состоит UIWebView с номерами телефонов. Думаю, это потому, что меню contextual отображается с UIWindow (например, UIAlertView).

Я хочу, чтобы убрать или скрыть это contextual меню на данный момент программно.

Я попытался достичь этого, ниже попыток,

1) На viewDidDisappear,

[UIMenuController sharedMenuController].menuVisible = NO; 

2) Я попытался с помощью быстрого перечисления, как показано ниже, не

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]; 

Swift:

self.dismissViewControllerAnimated(false, completion: nil) 

, чтобы избавиться от контекстного меню.

+0

Спасибо за ваш ответ, но это также не сработало для меня :-(Моя проблема заключается в том, чтобы вытащить контроллеры представлений, контекстное меню уже находится на экране, а на viewWillDisappear даже после отклонения текущего контроллера вида или появления контроллер rootview, всплывающее окно, которое было на экране, по-прежнему существует на экране, поскольку оно добавлено в окно из iOS. Я думаю, что UIAlertViews –

+0

Мне удалось воссоздать вашу проблему и устранить ее, поместив ее в контроллер вида, содержащий веб-представление. Все действие хлопать в корне, то self.dismissViewControllerAnimated! (ложь, завершение: ноль) self.navigationController .popToRootViewControllerAnimated (правда) вы уверены, что распустил контроллер представления в нужное место? – bjornorri

+0

yup Я сделал это точно так же, как и в любом случае :( –

Смежные вопросы