C# 如何检查当前viewcontroller是否被推送或显示

C# 如何检查当前viewcontroller是否被推送或显示,c#,xamarin.ios,C#,Xamarin.ios,我是Xamarin的新手。我已经搜索了很多,以了解我的ViewController是否被推送或显示。因此,我将相应地弹出或关闭它,但失败。您可以使用下面的方法 private static UIViewController GetController() { var vc = UIApplication.SharedApplication.KeyWindow.RootViewController; while (vc.PresentedViewController != nul

我是Xamarin的新手。我已经搜索了很多,以了解我的ViewController是否被推送或显示。因此,我将相应地弹出或关闭它,但失败。

您可以使用下面的方法

private static UIViewController GetController()

{
    var vc = UIApplication.SharedApplication.KeyWindow.RootViewController;
    while (vc.PresentedViewController != null  && vc.PresentedViewController.ToString().Contains("Xamarin_Forms_Platform_iOS_ModalWrapper"))
        vc = vc.PresentedViewController;
    return vc;
}

如果它的返回值不为null,则意味着您在堆栈中有当前控制器

您可以在下面的方法中使用

private static UIViewController GetController()

{
    var vc = UIApplication.SharedApplication.KeyWindow.RootViewController;
    while (vc.PresentedViewController != null  && vc.PresentedViewController.ToString().Contains("Xamarin_Forms_Platform_iOS_ModalWrapper"))
        vc = vc.PresentedViewController;
    return vc;
}

如果返回值不为null,则表示堆栈中有当前控制器

您只需检查当前viewcontroller是否存在于导航堆栈中

解决方案
您只需检查当前viewcontroller是否存在于导航堆栈中

解决方案