首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在启动应用程序期间无法访问UIApplication.SharedApplication.KeyWindow,因为keywindow始终为空

在启动应用程序期间无法访问UIApplication.SharedApplication.KeyWindow,因为keywindow始终为空
EN

Stack Overflow用户
提问于 2019-01-23 17:55:27
回答 1查看 1.7K关注 0票数 0

当我的应用程序启动时,我会显示Storyboad,里面有一个像溅屏一样的图像。然后从LoadApplication类中的FinishedLaunching()方法调用AppDelegate (new())。在我的UIApplication.SharedApplication.KeyWindow.RootViewController中,我需要访问App.cs来显示进度条。但是Keywindow是空的,因此会出现崩溃。

代码语言:javascript
复制
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
DependencyService.Register<ILoadingService,LoadingService>();
global::Xamarin.Forms.Forms.Init();
Xamarin.FormsGoogleMaps.Init("AIzaSyCqt-tfGrKhauCgC2Y5UkPreXfMZisPOH8");

LoadApplication(new App());
UIWindow.Appearance.TintColor = new UIColor(red: 0.55f, green: 0.76f, blue: 0.29f, alpha: 1.0f);
return base.FinishedLaunching(app, options);
}

App.cs文件:

代码语言:javascript
复制
public App(string ticketNumberNotifParam = null, int ticketID = 0)
{
DependencyService.Get<ILoadingService>().Show("Updating user token...");
LoadHomepage();
}

LoadingService();

代码语言:javascript
复制
public void Show(string title, string message = "Loading")
{
UIViewController controller = 
UIApplication.SharedApplication.KeyWindow.RootViewController;
        hud = new MTMBProgressHUD(controller.View);
        controller.View.AddSubview(hud);
}

这里的Keywindow是空的。我做错了什么有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2019-01-24 05:23:11

事业:

此时还没有实例化keyWindow

解决方案:

您可以将show函数置于OnStart下。

代码语言:javascript
复制
 protected override void OnStart()
    {
        // Handle when your app starts

        DependencyService.Get<ILoadingService>().Show("Updating user token...");

    }

参考:应用生命周期

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54333021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档