我实施了它,它可以通过Prism的NavigationService进行导航:
Math.random
在特定按钮的命令中,我实现了例如:
protected override void OnInitialized()
{
InitializeComponent();
NavigationService.NavigateAsync("FirstPage?title=FirstPage");
}
protected override void RegisterTypes()
{
Container.RegisterTypeForNavigation<MainPage>("MainPage");
Container.RegisterTypeForNavigation<FirstPage>("FirstPage");
Container.RegisterTypeForNavigation<FirstPage>("SecondPage");
}
很容易,但是。如果我想:
转到第一页,检查一下是否真的立即转到“第二页”?它不起作用!必须单击该按钮,否则导航不起作用
这是一个错误,还是我错过了什么?
谢谢!
答案 0 :(得分:0)
在您的FirstPage或FirstPageViewModel上,您必须实施 INAVigatedAware 界面。
在 NavigatedTo (这将在您导航到FirstPage后调用)中,您应检查条件并导航到SecondPage,如果为true
在FirstPage类上执行此操作的示例:
public partial class FirstPage : ContentPage, INavigatedAware
{
INavigationService _navigationService;
bool myCondition = true;
public FirstPage(INavigationService navigationService)
{
_navigationService = navigationService;
InitializeComponent();
}
void OnNavigatedFrom(NavigationParameters parameters)
{
}
void OnNavigatedTo(NavigationParameters parameters)
{
if(myCondition == true)
{
_navigationService.NavigateAsync("SecondPage");
}
}
}