Как получить доступ к keyWindow в расширении share в ios?

Мне нужно получить доступ к keyWindow в расширении share для моего приложения.
– Добавить представление индикатора
– Доступ к ширине и высоте окна

Я написал следующую строку в расширениях расширений:

UIWindow *mainWindow = [[UIApplication sharedApplication] keyWindow]; 

Но он говорит, что «sharedApplication» недоступен.
Как я могу получить доступ к keyWindow в расширении share?

Нужны ваши ценные предложения.
заранее спасибо

3 Solutions collect form web for “Как получить доступ к keyWindow в расширении share в ios?”

Совместное приложение недоступно для расширений. Вы не можете получить доступ к ключевому окну из расширения общего доступа. Вы можете подклассифицировать контроллер ShareExtension View из UINavigationController и можете представить контроллер модального просмотра, а затем можно также навигация. В этом модульном контроллере можно добавить индикатор активности.

 UIApplication *application = [UIApplication performSelector:@selector(sharedApplication)]; UIWindow *keyWindow = application.keyWindow; 

однако, keyWindow – это nil …

UIApplication недоступен для расширений. Чтобы добавить представление индикатора, вам нужно сделать это через свой стек UIViewController, но вы можете получить размер экрана, что может быть достаточно в зависимости от конкретного варианта использования (быстрый):

 UIScreen.mainScreen().bounds.size 

Подробнее о различиях между [UIScreen mainScreen] .bounds vs [UIApplcation sharedApplication] .keyWindow.bounds?

Обновить

Альтернативой использованию UIScreen для получения размера является перемещение по иерархии представлений. Это работает в любом месте UIView или UIViewController, где выложено представление. Вы также можете добавить индикатор в самый верхний вид.

 // Find the top most view var view: UIView = self; while let higherView = view.superview { view = higherView; } // Size you need var size: CGSize = view.frame.size; // Add the indicator let indicator: UIView = UIView(frame: CGRectMake(100, 100, 100, 100)); indicator.backgroundColor = UIColor.orangeColor(); view.addSubview(indicator); view.bringSubviewToFront(indicator); 
  • Измените изображение предварительного просмотра в SLComposeServiceViewController
  • Как получить URL-адрес формы изображения, переданный расширением share, в приложение
  • Доля между расширением iOS и содержащим приложение с брелка?
  • Расширение IOS Share: как читать заметки
  • Как обмениваться только изображением или видео с расширением share
  • Как написать файл из расширения общего доступа iOS8, которое может прочитать хост-приложение?
  • Расширение Share iOS не работает
  • iOS 8 UIActivityViewController Mail не отправляет вложения электронной почты
  • Как создать расширение для iOS для контактов
  • Как открыть приложение iOS изнутри расширения?
  • Только портрет расширения ios
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.