gpt4 book ai didi

xamarin - Xamarin Forms 中的 Navigation.PushModalAsync() 和 Navigation.PushAsync() 有什么区别?

转载 作者:行者123 更新时间:2023-12-02 03:44:09 26 4
gpt4 key购买 nike

问这个问题的原因我在 xamarin 表单 mvvm 架构中使用 PushAsync 时出错

await Navigation.PushAsync(new Page2());

错误是

enter image description here

我已通过将 PushAsync 更改为 PushModelAsync 来更正此错误

await Navigation.PushModalAsync(new Page2());

有人知道导致此错误的原因吗?

我正在从 ViewModel 调用 PushModelAsync

public class Page1Model : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;

public INavigation Navigation { get; set; }
public Command ContinueBtnClicked { get; }

public Page1Model(INavigation navigation)
{
this.Navigation = navigation;
this.ContinueBtnClicked = new Command(async () => await GotoPage2());
}

public async Task GotoPage2()
{
await Navigation.PushModalAsync(new Page2());
}
}

最佳答案

在您的 App.xaml.cs 中,将您的第一个页面包装在 NavigationPage 中,如下所示:MainPage = new NavigationPage(new Page1());.

现在它可以工作了。如果您只有一个页面,iOS 不知道如何从那里导航到另一个页面,因此它需要一个容器页面来处理导航。

模态变体起作用的原因是因为它产生了一个新的导航堆栈并在其他所有内容之上显示页面(因此是模态的)。

关于xamarin - Xamarin Forms 中的 Navigation.PushModalAsync() 和 Navigation.PushAsync() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47352950/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com