无论标签标题如何,如何更改导航栏标题

Arv*_*iya 5 c# xamarin.ios xamarin.forms

我将导航栏上的页面标题设置为

public Homework ()
{
   InitializeComponent ();
   Title = "Homework";     
}
Run Code Online (Sandbox Code Playgroud)

该页面的子页面标签页,其中标签已经有标题“TAB1”。

现在,当我Homework.csTab1打开页面时,上面的代码将 Tab 标题更改为 Homework,导航栏标题也更改为“Homework”。我不想更改标签标题。

MyTabbed 页面代码使用

   public class MyTabbedPage : TabbedPage
    {
        public MyTabbedPage()
        {
           this.CurrentPageChanged +=delegate
           {        
             this.Title = this.CurrentPage.Title;
           };     
        }
    }
Run Code Online (Sandbox Code Playgroud)

查看一些方便的片段

public App ()
{
    InitializeComponent();
    MainPage = new NavigationPage(new LoginPage());          
}
Run Code Online (Sandbox Code Playgroud)

单击 LoginContentPage 按钮

btnLogin.Clicked +=async delegate {
 await Navigation.PushAsync(new ParentDashboard(), false);
};
Run Code Online (Sandbox Code Playgroud)

ParentDashboard 包含选项卡

public partial class ParentDashboard : MyTabbedPage
{
    public ParentDashboard()
    {
        InitializeComponent();      
        Title="Home"; //upto here title working
    }
}
Run Code Online (Sandbox Code Playgroud)

从现在开始,我点击 HomewPage,正如我在这个问题的开头所示,这不起作用。我怎样才能做到这一点?

Lan*_*SFT 2

我猜你的项目的层次结构可能是这样的:

NavigationPage => TabbedPage => 子页面。

然后,每次子页面的标题更改时, 的TabbedPage标题也会更改。即使我们为这个子页面制作了一个自定义渲染器,也很难更改页面的导航栏的标题。因为 NavigationCtroller 的根 viewController 是您的选项卡式页面。

我建议您调整项目的层次结构,使每个子页面都由导航页面包裹,例如:

在此输入图像描述

这样,您可以通过设置导航页的标题来调整选项卡项的标题,并通过设置 的标题来更改导航栏的标题Homework

关于构建可以参考我的代码app()

// This is a TabbedPage
var tabbedPage = new MyTabbedPage();

var firstPage = new MainPage();
// The NavigationPage's Title will be shown on the tab, and firstPage's title can be shown on the navigation bar
tabbedPage.Children.Add(new NavigationPage(firstPage) { Title = "FirstPage" });

var homePage = new Homework();
tabbedPage.Children.Add(new NavigationPage(homePage) { Title = "SecondPage" });

MainPage = tabbedPage;
Run Code Online (Sandbox Code Playgroud)