2015-02-12 14 views

cevap

23

Eğer Bu kod arkasında sizin koduna gitmek zorunda kalacak bu nedenle bir

var existingPages = Navigation.NavigationStack.ToList(); 
foreach(var page in existingPages) 
{ 
    Navigation.RemovePage(page); 
} 

kullanabilirsiniz

Navigation.NavigationStack 

kullanarak navigasyon yığını görebilirsiniz Navigasyon Sayfası veya INavigation'ı uygulayan bir şey.

fazla bilgi Xamarin.Forms.INavigation Members

+0

Harika, eski sürümü kullanıyorum ve NavigationStack – Ibrahim

+0

@ibrahim'i kullanamıyorum, versiyonunuzu nuget ile yükseltebilirsiniz. projenizdeki referanslara gidin ve nuget paketlerini sağ tıklayın ve tıklayın. Daha sonra Güncelleştirmeler'i seçin ve Xamarin.Forms güncelleştirmesini yükleyin – user1

+0

Evet Biliyorum, sorunun nedenini yazdım. Çünkü bu sorunun yeni versiyonu aptalca. – Ibrahim

1

Bu benim yığını boşaltmak ve belirli bir sayfaya gitmek için yapılmış bir fonksiyondur.

public async Task PopAllTo(ViewModel vm) 
    { 
     if (vm == null) return; 
     Page page = PreparePage(vm); //replace 'page' with the page you want to reset to 
     if (page == null) return; 
     _navigation.InsertPageBefore(page, _navigation.NavigationStack.First()); 
     await _navigation.PopToRootAsync(); 
    } 
+0

Mükemmel çalışır –

0

Bu deneyebilirsiniz ...

public void ResetNavigationStack() 
    { 
     if (_navigation != null && _navigation.NavigationStack.Count() > 0) 
     { 
      var existingPages = _navigation.NavigationStack.ToList(); 
      foreach (var page in existingPages) 
      { 
       _navigation.RemovePage(page); 
      } 
     } 
    } 

ve Booom (kullanım böyleydi uygulama kullanımı esnasında de-aktive edildi ve ben dışarı kullanıcı tekme gerekir) !!! Bu nav yığını brotha temizlendi!

Yoksa istiyorum modal yığını

public async Task<Page> PopAllModals() 
    { 
     Page root = null; 

     if (_navigation.ModalStack.Count() == 0) 
      return null; 

     for (var i = 0; i <= _navigation.ModalStack.Count(); i++) 
     { 
      root = await _navigation.PopModalAsync(false); 
     } 
     return root; 
    } 

Ve Booom reset eğer! Bu modalar gitti!