title: Xamarin.Forms Shell: Is there a way to use GoToAsync and Routing to navigate to a tab, and push a page there
body: <p>Consider the following Xamarin.Forms Shell XAML:</p>
  
  <pre><code> &lt;TabBar&gt;
          &lt;Tab Title="Page1" Route="page1" Icon="page1.png"&gt;
              &lt;ShellContent ContentTemplate="{DataTemplate local:Page1}" /&gt;
          &lt;/Tab&gt;
          &lt;Tab Title="Page2" Route="page2" Icon="page2.png"&gt;
              &lt;ShellContent ContentTemplate="{DataTemplate local:Page2}" /&gt;
              &lt;ShellContent Route="page2a" ContentTemplate="{DataTemplate local:Page2A}" /&gt;
          &lt;/Tab&gt;
          &lt;Tab Title="Page3" Route="page3" Icon="page3.png"&gt;
              &lt;ShellContent ContentTemplate="{DataTemplate local:Page3}" /&gt;
          &lt;/Tab&gt;
  &lt;/TabBar&gt;
  </code></pre>
  
  <p>This results in 3 bottom tabs. On Page 2 there are also two top tabs.</p>
  
  <p>I can navigate successfully with calls like:
  <code>.GoToAsync("//page1")</code> and <code>.GoToAsync("//page2/page2a")</code></p>
  
  <p>What I would like to do is have Page2A as a page that gets pushed on top of the Page2 tab. So when I call <code>GoToAsync("//page2/page2a")</code> the App navigates to the Page2 tab, but displays the Page2A page on top. I'd like no top tabs, but rather the Page2A NavBar would have the back button visible, and when pressed Page2A would be popped from the stack and Page2 would again be visible.</p>
  
  <p>Is there any way to achieve this with Shell, perhaps by adjusting my XAML?</p>
  
  <p>At the moment I'm just using the old <code>PushAsync(..)</code> method, but it seems a shame to not take advantage of Shell's navigation features.</p>