@@ -355,6 +355,7 @@ public virtual async Task<INavigationResult> NavigateFromAsync(string viewName,
355355            var  foundPage  =  navigationPages . FirstOrDefault ( page =>  ViewModelLocator . GetNavigationName ( page )  ==  viewName ) ; 
356356            if  ( foundPage  is  null ) 
357357            { 
358+                 // Find a page from parents. 
358359                var  page  =  currentPage ; 
359360                while  ( page  !=  null ) 
360361                { 
@@ -366,14 +367,19 @@ public virtual async Task<INavigationResult> NavigateFromAsync(string viewName,
366367            } 
367368            else 
368369            { 
370+                 // Insert RemovePageSegment. 
369371                var  removePageCount  =  navigationPages . IndexOf ( foundPage ) ; 
370372
371-                 // Insert RemovePageSegment. 
372-                 var  routeString  =  route . ToString ( ) ; 
373+                 var  tempQueue  =  new  Queue < string > ( ) ; 
373374                for  ( int  i  =  0 ;  i  <  removePageCount ;  i ++ ) 
374375                { 
375-                     AddToFront ( navigationSegments ,  RemovePageSegment ) ; 
376+                     tempQueue . Enqueue ( RemovePageSegment ) ; 
377+                 } 
378+                 while ( navigationSegments . Count  >  0 ) 
379+                 { 
380+                     tempQueue . Enqueue ( navigationSegments . Dequeue ( ) ) ; 
376381                } 
382+                 navigationSegments  =  tempQueue ; 
377383            } 
378384
379385            await  ProcessNavigation ( currentPage ,  navigationSegments ,  parameters ,  null ,  null ) ; 
@@ -392,23 +398,6 @@ public virtual async Task<INavigationResult> NavigateFromAsync(string viewName,
392398        } 
393399    } 
394400
395-     private  static void  AddToFront < T > ( Queue < T >  queue ,  T  element ) 
396-     { 
397-         var  tempQueue  =  new  Queue < T > ( ) ; 
398- 
399-         while  ( queue . Count  >  0 ) 
400-         { 
401-             tempQueue . Enqueue ( queue . Dequeue ( ) ) ; 
402-         } 
403- 
404-         queue . Enqueue ( element ) ; 
405- 
406-         while  ( tempQueue . Count  >  0 ) 
407-         { 
408-             queue . Enqueue ( tempQueue . Dequeue ( ) ) ; 
409-         } 
410-     } 
411- 
412401    /// <summary> 
413402    /// Selects a Tab of the TabbedPage parent. 
414403    /// </summary> 
0 commit comments