如何在.NET Maui中从contentPage后端导航到TabbedPage?

83qze16e  于 2023-11-20  发布在  .NET
关注(0)|答案(2)|浏览(294)

我创建了一个包含现有页面和内容页面(用于测试)的Web页面,在MainPage.xaml中我有一个按钮,我希望这个按钮的事件导航到Web页面。

  1. private async void Button_Clicked(object sender, EventArgs e)
  2. {
  3. await Navigation.PushAsync(new NewPage2());
  4. }

字符串
不工作,因为Pushlooc期望contentpage参数,并将其更改为:

  1. private async void Button_Clicked(object sender, EventArgs e)
  2. {
  3. await Navigation.PushAsync(new NavigationPage(new NewPage2()));
  4. }


如果说“Object reference not set to an instance of an object”(对象引用未设置为对象示例),它就不起作用了。
下面是一些分页和tabbed.cs的代码。分页:

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <TabbedPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
  4. x:Class="MauiApp1.NewPage2"
  5. xmlns:android="clr-namespace:Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific;assembly=Microsoft.Maui.Controls"
  6. android:TabbedPage.ToolbarPlacement="Bottom"
  7. xmlns:local="clr-namespace:MauiApp1"
  8. Title="NewPage2">
  9. <local:NewPage1 x:Name="tab1" Title="tab 1" />
  10. <ContentPage BackgroundColor="Red" Title="tab 2" />
  11. </TabbedPage>


tabbed.cs:

  1. namespace MauiApp1;
  2. public partial class NewPage2 : TabbedPage
  3. {
  4. public NewPage2()
  5. {
  6. InitializeComponent();
  7. }
  8. }

trnvg8h3

trnvg8h31#

正如Jason所说,您可以通过设置App从LoginPage导航到TabbedPage。
在App.xaml.cs中:

  1. public partial class App : Application
  2. {
  3. public App()
  4. {
  5. InitializeComponent();
  6. MainPage = new LoginPage();
  7. }
  8. }

字符串
在LoginPage的成功登录中:

  1. private async void Button_Clicked(object sender, EventArgs e)
  2. {
  3. App.Current.MainPage = new NewPage2();
  4. }

展开查看全部
643ylb08

643ylb082#

通常TabbedPage是主页面定义的,但有一种方法可以实现这一点

  1. Shell.Current.Navigation.PushModalAsync(new YourPage(), true);

字符串
然后从另一个页面导航回来,你可以简单地

  1. Shell.Current.Navigation.PopModalAsync(true);

相关问题