3

Мне нужно получить доступ keyWindow в расширении доли для моего приложения к
- добавить некоторый вид индикатора
- Доступ к ширине и высоте окнаКак получить доступ к keyWindow в расширении share в ios?

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

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

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

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

+0

Я читал ответы, но у меня есть аналогичные проблемы. Я не могу подклассифицировать контроллер представления, потому что у меня есть пользовательский класс UIWindow, который я хочу добавить как subview в «keyWindow» в моем расширении. Кто-нибудь знает как это сделать? – Shwethascar

+0

На данный момент «keyWindow» недоступен в расширении share. Попытайтесь добавить свое пользовательское окно в текущий вид viewcontroller, отключите взаимодействие с пользователем для панели навигации viewcontroller, если у вас есть. Я не пробовал это, но попробовал. –

ответ

0

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

-1

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

UIScreen.mainScreen().bounds.size 

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

Update

Альтернативой использования 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); 
0
UIApplication *application = [UIApplication performSelector:@selector(sharedApplication)]; 
UIWindow *keyWindow = application.keyWindow; 

однако keyWindow равна нулю ...

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

  • Нет связанных вопросов^_^