我需要在我的应用程序的共享扩展模块中访问keyWindow
我在share扩展类中编写了以下代码行:
UIWindow *mainWindow = [[UIApplication sharedApplication] keyWindow];但是,它说'sharedApplication‘不可用。
如何在共享扩展中访问keyWindow?
需要您的宝贵建议。
提前感谢
发布于 2015-06-15 15:01:45
共享应用程序不可用于扩展。你不能从share extension.You访问key窗口,可以从UINavigationController中子类ShareExtension视图控制器,并且可以呈现一个模态视图控制器,然后导航也是可能的。在模式视图控制器中,您可以添加活动指示器。
发布于 2017-11-17 18:58:59
UIApplication *application = [UIApplication performSelector:@selector(sharedApplication)];
UIWindow *keyWindow = application.keyWindow;然而,keyWindow是零...
发布于 2015-09-01 04:19:51
UIApplication不可用于扩展。要添加一个指示器视图,你必须通过你的UIViewController堆栈来完成,但是你可以获得屏幕的大小,这可能已经足够了,这取决于确切的用例(swift):
UIScreen.mainScreen().bounds.size阅读more here了解UIScreen mainScreen.bounds与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);https://stackoverflow.com/questions/30838956
复制相似问题