xamarin 如何检查页面是否已被查看

lyfkaqu1  于 2023-09-28  发布在  其他
关注(0)|答案(1)|浏览(99)

在我的Xamarin.Forms应用中,我想在将MyPage推到堆栈上之前确保它还没有被查看:

if (App.Current.MainNavigation.NavigationStack?.Any(x => x is MyPage) == true ||
    App.Current.MainNavigation.ModalStack?.Any(x => x is MyPage) == true)
   {
       return;
   }
   else
   {
       await App.Current.MainNavigation.PushModalAsync(new MyPage());
   }

但是它在两个堆栈上都没有找到MyPage,并且调用了PushModalAsync两次。

fkaflof6

fkaflof61#

我不能重现你的问题,因为代码还没有完成。但是如果你想检查页面是否已经被查看。您可以重写在查看页面时将调用的OnAppearing方法。例如:

public partial class MyPage : ContentPage
    {
        public static bool flag = false;
        public MyPage()
        {
            InitializeComponent();
        }

        protected override void OnAppearing()
        {
            base.OnAppearing();
            flag = true;
        }
    }

然后通过以下代码检测它:

if(MyPage.flag = true)
   {
       return;
   }
   else
   {
       await App.Current.MainNavigation.PushModalAsync(new MyPage());
   }

相关问题