Это потому, что ViewIsAppearing
всегда вызывается, когда страница начинает отображаться на экране.Когда вы откроете вторую страницу и перейдете на первую страницу, ViewIsAppearing
на первой странице снова сработает.Это вызвало мертвый цикл и запретило вашему приложению возвращаться на первую страницу.
Добавьте свойство, чтобы избежать этого:
bool isInitialized;
public FirstPageModel()
{
// ...
isInitialized = true;
}
protected async override void ViewIsAppearing(object sender, EventArgs e)
{
base.ViewIsAppearing(sender, e);
if (isInitialized)
{
await Task.Delay(100);
await CoreMethods.PushPageModel<SecondPageModel>();
isInitialized = false;
}
}
iOS может оптимизировать этот процесс, но я все же рекомендую вамдобавьте это суждение.
Обновление:
Назовите его, когда ваше приложение достигло основного потока.
protected override void ViewIsAppearing(object sender, EventArgs e)
{
base.ViewIsAppearing(sender, e);
if (isInitialized)
{
Device.BeginInvokeOnMainThread(() =>
{
CoreMethods.PushPageModel<SecondPageModel>();
isInitialized = false;
});
}
}