Ich habe eine App mit einem Bereitstellungsziel von iOS 9.3.leftBarButtonItem setTitleTextAttributes Problem in iOS11
Ich habe gerade auf Xcode 9.0.1 aktualisiert und habe dieses Problem auf allen Simulatorgeräten und meinem iPhone7-Gerät mit iOS11 bemerkt. Das Problem betrifft keine Geräte mit < iOS11.
ich ein linker Balken Taste Artikel am Initialisierung mit einer benutzerdefinierten Schriftart wie folgt (in viewDidLoad):
UIBarButtonItem *safeModeButton = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:self action:@selector(toggleSafeMode)];
[safeModeButton setTitleTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[UIFont fontWithName:@"Sosa-Regular" size:31],NSFontAttributeName,
nil]forState:UIControlStateNormal];
[self.navigationItem setLeftBarButtonItem:safeModeButton];
self.navigationItem.leftItemsSupplementBackButton = YES;
Kurz nach in einem anderen Verfahren habe ich die Bar-Taste Titel wie folgt:
self.navigationItem.leftBarButtonItem.title = @"è";
Das Problem ist, ich sehe die tatsächliche è Text auf der Schaltfläche, anstatt das Symbol, das gerendert werden soll. è für die Schriftart "Sosa-Regular" ist ein Symbol.
Ich hatte dieses Problem vor dem Xcode9/iOS11-Upgrade zuvor nicht. Ich habe versucht, titleTextAttributes explizit festzulegen, bevor ich den Titel einstelle, aber es zeigt immer nur das è. Es ist so, als wäre titleTextAttributes nicht persistent oder wenn der Titel außerhalb von viewDidLoad gesetzt wird, wird titleTextAttributes für die Schaltfläche zurückgesetzt. Wenn ich den Titeltext in viewDidLoad einstelle, funktioniert alles ok.
Irgendwelche Ideen würden geschätzt.