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

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

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

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

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

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


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

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

</TabbedPage>


tabbed.cs:

namespace MauiApp1;

public partial class NewPage2 : TabbedPage
{
    public NewPage2()
    {
        InitializeComponent();
    }
}

trnvg8h3

trnvg8h31#

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

public partial class App : Application
    {
        public App()
        {
            InitializeComponent();

            MainPage = new LoginPage();
        }
    }

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

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

643ylb08

643ylb082#

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

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

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

Shell.Current.Navigation.PopModalAsync(true);

相关问题