When the app moves to background, it will trigger OnResignActivation
and DidEnterBackground
method, what you should do is that find the top viewcontroller in DidEnterBackground
in AppDelegate
.
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;
}
Refer to this answer and comments under it.