如何在IOS中更改导航栏样式Xamarin.Forms

时间:2017-12-05 04:46:51

标签: xamarin xamarin.ios xamarin.forms

我已经引用了以下链接来全局隐藏导航栏后退按钮标题,并且其工作正常,但是当我向工具栏添加任何文本时,工具栏文本也会隐藏。任何人都可以建议解决这个问题。

How to Hide Navigation bar back button title globally in xamarin.ios

这是我的工具栏代码:

ToolbarItem tbi = new ToolbarItem() { Text = "Text", Order = ToolbarItemOrder.Primary };
ToolbarItems.Add(tbi);

2 个答案:

答案 0 :(得分:0)

更改或删除Xamarin.Forms上的后退按钮文本的最简单方法是使用以下代码:

NavigationPage.SetBackButtonTitle(this, "");

请注意,您需要在页面之前页面上显示后退按钮,即调用页面。

我试过了,你的工具栏代码工作正常。

修改

您还可以创建一个包含隐藏工具栏按钮代码的基页,并从中继承所有页面。

这是基页:

public class BasePage : ContentPage
{
    public BasePage ()
    {
        NavigationPage.SetBackButtonTitle(this, "");
    }
}

然后继承的页面看起来像这样

public partial class MainPage : BasePage
{
    public MainPage()
    {
        InitializeComponent();
    }
}

如果是XAML页面,请确保更改页面类型

<pages:BasePage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:pages="clr-namespace:ScratchPad.Pages;assembly=ScratchPad"
             x:Class="ScratchPad.Pages.MainPage"
             Title="List Test">
    <StackLayout>
        <Button Text="Page Two" Command="{Binding PageTwoCommand}"/>
        <ListView ItemsSource="{Binding Items}"
                  SelectedItem="{Binding SelectedItem, Mode=TwoWay}">
        </ListView>

    </StackLayout>

</pages:BasePage>

enter image description here

答案 1 :(得分:0)

请参阅ToolbarItem in Official Source Code

我们可以看到,在iOS平台上进行编译时,ToolbarItem将呈现为UIBarButtonItem

因此,以下代码也会影响ToolbarItem外观。

UITextAttributes attribute = new UITextAttributes {TextColor = UIColor.Clear };
UIBarButtonItem.Appearance.SetTitleTextAttributes(attribute, UIControlState.Normal);

这是使用SetBackButtonTitlePositionAdjustment的最简单方法。

UIBarButtonItem.Appearance.SetBackButtonTitlePositionAdjustment (new UIOffset (-100, 0), UIBarMetrics.Default);

如果您仍想寻找其他方式,请尝试Custom Renderers