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);
Я читал ответы, но у меня есть аналогичные проблемы. Я не могу подклассифицировать контроллер представления, потому что у меня есть пользовательский класс UIWindow, который я хочу добавить как subview в «keyWindow» в моем расширении. Кто-нибудь знает как это сделать? – Shwethascar
На данный момент «keyWindow» недоступен в расширении share. Попытайтесь добавить свое пользовательское окно в текущий вид viewcontroller, отключите взаимодействие с пользователем для панели навигации viewcontroller, если у вас есть. Я не пробовал это, но попробовал. –