как отобразить имя страницы как заголовок панели навигации iOS PageRenderer - PullRequest
0 голосов
/ 28 мая 2018

Я работаю над Xamarin.Forms.В iOS PageRenderer мне нужно получить открываемое имя страницы, чтобы установить это имя на UINavigationbar.Я попробовал это, как показано ниже

public class ContentPageRenderer : PageRenderer
    {
        string pageName = string.Empty, pageName2 = string.Empty;
        public new ContentPage Element
        {
            get { return (ContentPage)base.Element; }
        }
        protected override void OnElementChanged(VisualElementChangedEventArgs e)
        {
            base.OnElementChanged(e);  
            if (e.NewElement != null)
            {
                var att = new UITextAttributes();
                att.Font = UIFont.FromName("Space Age", 24);
                UINavigationBar.Appearance.SetTitleTextAttributes(att);
                pageName = e.GetType().Name;
                pageName2 = App.Current.MainPage.Title.ToString();
            }
        }
        public override void ViewWillAppear(bool animated)
        {
            base.ViewWillAppear(animated);

            if (NavigationController == null)
                return;
            var navigationItem = NavigationController.TopViewController.NavigationItem;
            UIBarButtonItem backButton = new UIBarButtonItem();
            backButton.Title = "back"; //Your BackBurron Title here
            NavigationController.NavigationBar.TopItem.BackBarButtonItem = backButton;

            //setting title
            navigationItem.Title = "test Title"  //pageName;
        }
    }

Здесь, в коде pageName & pageName2 Я не получаю текущую страницу, чтобы установить это значение в качестве заголовка UINavigationbar

Когда я пыталсяустановка заголовка на странице домашней работы проекта PCL, он устанавливается на текст вкладок внизу, а не Navigatoinbar title

ниже страницы HomeWork.xaml.cs

public Homework ()
{
    InitializeComponent ();
    Title = "Homework";
}

Это страница Homework.xaml

<?xml version="1.0" encoding="utf-8" ?>
<Shared:CToolbarPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             Title="Diary"  
             Icon="dairy"
             xmlns:Shared="clr-namespace:edTheSIS.Shared"                        
             x:Class="edTheSIS.Pages.Homework">

    <ContentPage.BindingContext>
            <Shared:MainListView></Shared:MainListView>
        </ContentPage.BindingContext>
    <ListView Margin="0,0,0,0" 
              SeparatorVisibility="Default"    
    </ListView>
</Shared:CToolbarPage>

См. Скриншот ниже для получения дополнительной информации

enter image description here

Ниже, как Настройка заголовка в тексте Tab

enter image description here

1 Ответ

0 голосов
/ 30 мая 2018

Здесь я понял, как установить название страницы в качестве заголовка.В Our TabbedPage (PCL) нужно добавить некоторый код

 this.CurrentPageChanged += CurrentPageHasChanged;     

 protected void CurrentPageHasChanged(object sender, EventArgs e)
 {           
   this.Title = this.CurrentPage.Title;
 }

Однако вместе с заголовком панели навигации меняется и текст вкладки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...