3

Wie wir wissen, zeigt UINavigationController automatisch die Schaltfläche Zurück an, wenn der neue Ansichts-Controller auf den Stack des Navigationscontrollers geschoben wurde. Wenn im vorherigen Ansichts-Controller kein Titel festgelegt wurde, zeigt die Zurück-Schaltfläche den Standardtitel "Zurück" an. Wenn ich den Titel im vorherigen Ansichts-Controller einstelle, zeigt die Zurück-Schaltfläche diesen Titel an. So sieht es aus:Wie ändere ich den Titel der verkürzten Taste?

Back title
Auch wenn dieser Titel manchmal zu lang ist, ändert sich der Titel der Rückschaltfläche in den Standard "Zurück". Es sieht dann wie folgt aus:

enter image description here
Das Verhalten erwartet wird und ich mit ihm gut geht.

Das Problem ist, dass meine App in 3 verschiedenen Sprachen lokalisiert ist. Ich lokalisiere alle Controller-Titel manuell, wenn der vollständige Titel auf der Zurück-Schaltfläche angezeigt wird, ist alles in Ordnung.
Das Problem tritt auf, wenn (lokalisierter) Titel zu lang ist und er durch den Standardtitel "Zurück" ersetzt wird, der in Englisch ist (oder Standardsprache in iOS-Einstellungen) und nicht in der Sprache, die meine App derzeit anzeigt.

Also meine Frage ist, wie kann ich manuell Button-Titel nur zurückzusetzen, wenn vorherige Controller-Titel zu lang ist?

sollte ich hinzufügen, dass ich versuchte, Standardschaltfläche wie das Ersetzen zurück:

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

Es funktioniert gut, aber wieder Schaltfläche Titel wird ‚statisch‘ und zeigt nie den Titel des vorherigen Controller.

+0

Wenn iOS nicht richtig den „Zurück“ Etikett der Zurück-Taste lokalisierende wird, wenn Ihre Anwendung richtig eingestellt ist Zur Lokalisierung würde ich einen Fehlerbericht mit Apple einreichen. Fügen Sie eine Beispielanwendung hinzu, die das Problem veranschaulicht. https://bugreport.apple.com – rmaddy

+0

@rmaddy iOS ist "Back" Label richtig lokalisieren. Das Problem besteht darin, dass die Standardsprache, die Benutzer in ihrer Einstellungs-App festlegen, möglicherweise von der Sprache in meiner App abweicht. Ich zeige Bildschirm, wo Benutzer Sprache in meiner eigenen App ändern können. Es ist die Voraussetzung, die ich habe. – Andrius

+0

Das ist anders. Sie verwenden keine Standardlokalisierung, es ist also wirklich kein Fehler. – rmaddy

Antwort

2

iOS bietet die Lokalisierung für den Fallbacktext, wenn dieser zu lang ist. Sie müssen nur iOS sagen, dass Sie die Sprache wie folgt unterstützen:

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

Siehe auch: How to change UITabBarController More button's title?

+0

Das wäre ein Wort, aber die Sache ist, dass ich benutzerdefinierte Lokalisierung verwende, d. H. IOS-Einstellungen sind beispielsweise auf Englisch eingestellt, aber ich habe ein benutzerdefiniertes Menü in meiner eigenen Benutzeroberfläche, das Benutzern die Auswahl einer anderen Sprache ermöglicht. – Andrius

Verwandte Themen