3

新しいビューコントローラがナビゲーションコントローラのスタックにプッシュされると、UINavigationControllerは自動的に「戻る」ボタンを表示します。以前のビューコントローラでタイトルが設定されていない場合は、戻るボタンにデフォルトの「戻る」タイトルが表示されます。以前のビューコントローラでタイトルを設定した場合、戻るボタンはそのタイトルを表示します。これは、次のようになります。戻る短縮ボタンのタイトルを変更するには?

Back title
時にはタイトルが長すぎると、戻るボタンのタイトルがデフォルトの "戻る"に変わることがあります。それは次のようになります。


これは予想通りの動作であり、私はそれで問題ありません。

問題は、私のアプリが3つの異なる言語にローカライズされていることです。私はすべてのコントローラのタイトルを手動でローカライズするので、完全なタイトルがバックボタンに表示されている場合はすべて正常です。

(ローカライズされた)タイトルが長すぎて、私のアプリが現在表示している言語ではなく、英語(またはデフォルト言語、iOS設定で指定されている)のデフォルトの「戻る」タイトルに置き換えられます。

私の質問は、以前のコントローラのタイトルが長すぎる場合にのみ、ボタンのタイトルを手動で設定する方法です。

私はそのようなデフォルトの[戻る]ボタンを交換しようとしたことを追加する必要があります:

this.NavigationItem.BackBarButtonItem = new UIBarButtonItem (localizedBackTitle, UIBarButtonItemStyle.Plain, null); 

それは正常に動作しますが、戻るボタンのタイトルは「静的」になる、決して以前のコントローラのタイトルを示しています。

+0

あなたのアプリケーションが適切に設定されたときのiOSが正常に戻るボタンの「戻る」のラベルをローカライズされていない場合ローカリゼーションのために、Appleにバグレポートを提出します。問題を示すサンプルアプリを含めてください。 https://bugreport.apple.com – rmaddy

+0

@rmaddy iOSが「Back」ラベルを適切にローカライズしています。問題は、ユーザーが設定アプリで設定したデフォルトの言語がアプリの言語と異なる可能性があることです。自分のアプリでユーザーが言語を変更できる画面を表示します。それは私が持っている必要条件です。 – Andrius

+0

それは違う。あなたは標準的なローカリゼーションを使用していないので、実際にはバグではありません。 – rmaddy

答えて

2

iOSでは、フォールバックテキストが長い場合にローカライズされます。あなただけがこのような言語をサポートするのiOSを伝える必要があります:

<key>CFBundleLocalizations</key> 
    <array> 
    <string>en</string> 
    <string>ja</string> 
    </array> 

も参照してください: How to change UITabBarController More button's title?

+0

これは言いたいことですが、カスタムローカリゼーションを使用している、つまりiOS設定が英語に設定されていますが、ユーザーが別の言語を選択できる独自のUIでカスタムメニューを使用しています。 – Andrius

関連する問題