diff options
author | Johan Karlsson <johan.kson@gmail.com> | 2016-07-11 20:39:11 +0200 |
---|---|---|
committer | Jason Smith <jason.smith@xamarin.com> | 2016-07-11 11:39:11 -0700 |
commit | 09ff9355326065902e610e4058f7e4ee3160cdaa (patch) | |
tree | 164307323b871bc41a4770517f02d9e4b43f8c76 /Xamarin.Forms.Core/NavigationPage.cs | |
parent | f167024ef3a02c199c797b5313342dbe5d9a21de (diff) | |
download | xamarin-forms-09ff9355326065902e610e4058f7e4ee3160cdaa.tar.gz xamarin-forms-09ff9355326065902e610e4058f7e4ee3160cdaa.tar.bz2 xamarin-forms-09ff9355326065902e610e4058f7e4ee3160cdaa.zip |
Added PoppedToRootEventArgs to track popped pages when calling PopToRoot (#229)
Diffstat (limited to 'Xamarin.Forms.Core/NavigationPage.cs')
-rw-r--r-- | Xamarin.Forms.Core/NavigationPage.cs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Xamarin.Forms.Core/NavigationPage.cs b/Xamarin.Forms.Core/NavigationPage.cs index 85c8ac89..d7fb5f3e 100644 --- a/Xamarin.Forms.Core/NavigationPage.cs +++ b/Xamarin.Forms.Core/NavigationPage.cs @@ -319,7 +319,9 @@ namespace Xamarin.Forms var root = (Page)PageController.InternalChildren.First(); - PageController.InternalChildren.ToArray().Where(c => c != root).ForEach(c => PageController.InternalChildren.Remove(c)); + var childrenToRemove = PageController.InternalChildren.ToArray().Where(c => c != root); + foreach (var child in childrenToRemove) + PageController.InternalChildren.Remove(child); CurrentPage = root; @@ -335,7 +337,7 @@ namespace Xamarin.Forms } if (PoppedToRoot != null) - PoppedToRoot(this, new NavigationEventArgs(root)); + PoppedToRoot(this, new PoppedToRootEventArgs(root, childrenToRemove.OfType<Page>().ToList())); } async Task PushAsyncInner(Page page, bool animated) |