如何更改后退按钮的文本并删除<标签页上的箭头?

时间:2018-03-19 15:22:38

标签: xamarin xamarin.forms

我想更改后退按钮的文字并删除箭头。我希望这样做:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
xmlns:local="clr-namespace:Japanese;assembly=Japanese" 
x:Class="HelpHome" 
Title="Home Screen abc" 
NavigationPage.BackButtonTitle="< Last screen">

当我这样做时,标题被更改但不是BackButtonTitle。相反,BackButtonTitle默认为我以前的标签页的标题。

我还想删除箭头,但我不知道该怎么做?

1 个答案:

答案 0 :(得分:3)

“箭头”实际上是iOS特定的设计实现。

您必须为ContentPage编写自定义渲染器才能删除此箭头。 我不确定您是否可以只查询导航栏的后退按钮并删除箭头视图。你可以通过搜索“ios导航栏删除后退箭头”找到一些东西

我在这里展示的方式,您将删除按钮并将其替换为自制按钮: (在这种情况下,你必须重新连接按钮事件)

[assembly: ExportRenderer(typeof(Xamarin.Forms.ContentPage), typeof(CoolPage_iOS))]
namespace YourProject.iOS.Renderer
{
    public class CoolPage_iOS : PageRenderer
    {
        public override void ViewWillAppear(bool animated)
        {
            base.ViewWillAppear(animated);

            var onlyTextBackButton = new UIBarButtonItem(new UIButton() { Text = "New back Text" } );
            //implement click via: onlyTextBackButton.Clicked += YourClickMethod.....

            ParentViewController.NavigationItem.LeftItemsSupplementBackButton = false;       //Set to false, so the real back button will be taken away
            ParentViewController.NavigationItem.LeftBarButtonItems = new UIBarButtonItem[] { onlyTextBackButton };
        }
    }
}