Xamarin表单中的Navigation.PushModalAsync()和Navigation.PushAsync()之间有什么不同?
问这个问题的原因我在xamarin forms mvvm体系结构中使用PushAsync时出错Xamarin表单中的Navigation.PushModalAsync()和Navigation.PushAsync()之间有什么不同?,xamarin,xamarin.ios,xamarin.forms,Xamarin,Xamarin.ios,Xamarin.forms,问这个问题的原因我在xamarin forms mvvm体系结构中使用PushAsync时出错 await Navigation.PushAsync(new Page2()); 错误是 我已通过将PushAsync更改为PushModelAsync来更正此错误 await Navigation.PushModalAsync(new Page2()); 有人知道这个错误的原因吗 我正在从ViewModel调用PushModelAsync public class Page1Model : I
await Navigation.PushAsync(new Page2());
错误是
我已通过将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不知道如何从那里导航到另一个页面,因此它需要一个容器页面来处理导航
模态变量之所以有效,是因为它生成了一个新的导航堆栈,并在所有其他页面之上显示页面(因此是模态的)。在App.xaml.cs
中,将第一页包装在NavigationPage
中,如下所示:MainPage=new NavigationPage(new Page1())代码>
现在它可以工作了。如果您只有一个页面,iOS不知道如何从那里导航到另一个页面,因此它需要一个容器页面来处理导航
模态变体之所以有效,是因为它产生了一个新的导航堆栈,并在所有其他内容之上显示页面(因此是模态的)。感谢您的贴切解释。是的,它很管用,而且得到了知识。谢谢你甜蜜的解释。是的,它起作用了,并且获得了知识