我需要访问keyWindow股价延长我的应用程序
- 添加一些指标视图
- 访问窗口的宽度和高度如何在ios中访问共享扩展中的keyWindow?
我写的份额扩展类下面一行:
UIWindow *mainWindow = [[UIApplication sharedApplication] keyWindow];
但是,它说“共享应用程序”不可用。
如何访问共享扩展中的keyWindow?
需要您宝贵的建议。
在此先感谢
我需要访问keyWindow股价延长我的应用程序
- 添加一些指标视图
- 访问窗口的宽度和高度如何在ios中访问共享扩展中的keyWindow?
我写的份额扩展类下面一行:
UIWindow *mainWindow = [[UIApplication sharedApplication] keyWindow];
但是,它说“共享应用程序”不可用。
如何访问共享扩展中的keyWindow?
需要您宝贵的建议。
在此先感谢
共享应用程序不可用于扩展。您无法从共享扩展中访问关键窗口。您可以从UINavigationController继承ShareExtension View控制器的子类,并且可以呈现模式视图控制器,然后导航也是可能的。在该模式视图控制器中,您可以添加活动指示器。
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);
UIApplication *application = [UIApplication performSelector:@selector(sharedApplication)];
UIWindow *keyWindow = application.keyWindow;
然而,keyWindow是零......
我读了答案,但我有一个类似的问题。我无法继承视图控制器,因为我有一个自定义的UIWindow类,我想将其作为子视图添加到我的共享扩展中的'keyWindow'中。有谁知道这是怎么做到的吗? – Shwethascar
截至目前'keyWindow'在共享扩展中不可用。尝试将自定义窗口添加到当前视图控制器的视图,禁用viewcontroller导航栏的用户交互(如果有)。我没有尝试过,但试了一下。 –