2016-08-10 33 views
0

我們可以在單個應用中使用多種導航模式嗎?Xamarin格式:同一應用中的多個導航模式

在我的App.xaml頁我增加了一個功能

void SetUpNavigation() 
     { 
      var page = FreshPageModelResolver.ResolvePageModel<LaunchPageModel>(); 
      var navPage = new FreshNavigationContainer(page); 
      MainPage = navPage; 
     } 

但在用戶跡象,我想用主詳細頁面。有沒有辦法做到這一點 ??

回答

2

是的。你只需要再次設置你的應用的MainPage。在我們的項目中,我們使用它有一個方法Restart具有以下邏輯一個輔助類:

public static void Restart(View view, NavigationType navtype) 
{ 
    // Reset the mainpage depending on the navigation type 
    if (navtype == NavigationType.RestartWithMasterPage) 
    { 
     Application.Current.MainPage = new MasterPage(view); 
    } 
    else if (navtype == NavigationType.Restart) 
    { 
     Application.Current.MainPage = new NavigationPage(view); 
    } 
    else 
    { 
     // Just show the page 
     Application.Current.MainPage = view; 
    } 
} 

的NavigationType是一個枚舉:

public enum NavigationType 
{ 
    Normal, 
    Restart, 
    RestartWithMasterPage 
} 
+0

我試圖實現輔助類。當一個用戶點擊按鈕簽到說,它會調用啓動功能和'Application.Current.MainPage = SetupMasterDetailNav()'目前主要頁面將調用 '公共頁面SetupMasterDetailNav() \t \t { \t \t \t var masterDetail = new FreshMvvm.FreshMasterDetailNavigationContainer(); \t \t \t masterDetail.AddPage (「Login」); \t \t \t masterDetail.AddPage (「Register」); masterDetail.Init(「x」);其中,第一個數字表示第一個數字,第二個數字表示第一個數字。 \t \t \t MainPage = masterDetail; \t \t \t return MainPage; \t \t}' 但它仍然在同一頁上。我無法更改導航。 – TheDeveloper

+0

沒關係。我知道了。非常感謝。 – TheDeveloper