当应用程序在IOS中移动到背景或前景时识别页面

时间:2018-02-14 21:22:49

标签: ios xamarin.ios

我想确定当应用移动到后台时用户所在的页面。

原因:当应用程序进入前台时,我需要将其记录为遥测中的页面视图。因此,当应用程序移至后台时,了解用户所在的页面非常重要。

1 个答案:

答案 0 :(得分:0)

当应用移动到后台时,它会触发OnResignActivationDidEnterBackground方法,您应该在DidEnterBackground中找到AppDelegate中的顶级视图控制器。< / p>

String pageName;
public override void DidEnterBackground(UIApplication application)
{
    UIViewController controller = UIApplication.SharedApplication.KeyWindow.RootViewController;
    while (controller.PresentedViewController != null)
    {
        controller = controller.PresentedViewController;
    }

    UIViewController c = findTopViewController(controller);
    pageName = c.Class.Name;
}

public UIViewController findTopViewController(UIViewController controller)
{
    if (controller is UINavigationController) {
        controller = (controller as UINavigationController).TopViewController;
        findTopViewController(controller);
    }
    else if (controller is UITabBarController)
    {
        controller = (controller as UITabBarController).SelectedViewController;
        findTopViewController(controller);
    }
    return controller;
}

请参阅此answer及其下的评论。