2017-08-13 55 views
0

我實現,它通過棱鏡的工作原理與導航的NavigationService:如何以編程方式使用Prism的NavigationService?

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"); 
} 

在特定的按鈕命令我實現,例如:

_navigationService.NavigateAsync("FirstPage"); 

很容易,但。如果我想:

轉到第一頁,檢查一下,如果它是真的立即去「第二頁」?它不起作用!按鈕必須點擊,否則導航不起作用

這是一個錯誤,或者我錯過了什麼?

謝謝!

回答

0
  1. 在您的第一頁或FirstPageViewModel您必須實現INavigatedAware接口。

  2. NavigatedTo(這將調用一旦你導航到第一頁),如果這樣做對你的第一頁類的真正

例子中,你應該檢查的條件,並導航到SecondPage:

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"); 
     } 
    } 
} 
相關問題