Xamarin.Forms で NavigationPage
を使うと、 iOS では ナビゲーションバー(UINavigationBar)、Android では Action Bar がそれぞれ使用されます。
プラットフォーム標準のナビゲーション機能が共通の定義で使えるのは便利ですが、アプリの要件によっては、カスタマイズした場面もあるでしょう。
戻るボタンを消したい場合、 Page の XAML に NavigationPage.HasBackButton="false"
を追加します。
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="WorkingWithNavigation.Page2Xaml"
NavigationPage.HasBackButton="false"
Title="Page 2">
コードでは、 NavigationPage.SetHasBackButton(page2, false)
と書けます。
これを実行すると、下のようになります。
Page2 に仕掛けているので、iOS では Page2 だけ、戻るボタンが表示されないのが確認できます。 Android はちょっとわかりにくいですが、ActionBar のアイコンの横に着いている < のアイコンが、 Page2 だけ表示されないのが確認できます。
iOS の UINavigationBar では、戻るボタンには前画面のタイトルが表示されます。
Xamarin.Forms の NavigationPage も同じくです。
これを変更するには、 NavigationPage.BackButtonTitle="たいとる"
を使います。
要注意なのは、これを仕掛けたPageの戻るボタンタイトルが変わるのではなく、 これを仕掛けたPageが戻り先となる場合に、戻るボタンタイトルが変わる ということです。
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="WorkingWithNavigation.Page2Xaml"
NavigationPage.BackButtonTitle="BACK"
Title="Page 2">
コードでは、 NavigationPage.SetBackButtonTitle(page2, "BACK")
と書けます。
これを実行すると、下のようになります。
Page2 に BackButtonTitle="BACK"
を仕掛けているので、Page2 ではなく、それが戻り先となる Page3 の戻るボタンが「BACK」になっています。
尚、Android では、戻るボタンは「<」のアイコンだけなので、この機能は無視されます。