我需要訪問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導航欄的用戶交互(如果有)。我沒有嘗試過,但試了一下。 –