我想确定当应用移动到后台时用户所在的页面。
原因:当应用程序进入前台时,我需要将其记录为遥测中的页面视图。因此,当应用程序移至后台时,了解用户所在的页面非常重要。
答案 0 :(得分:0)
当应用移动到后台时,它会触发OnResignActivation
和DidEnterBackground
方法,您应该在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及其下的评论。