0

Wenn ich einen Text zu WhatsApp mit dem UIActivityViewController teilen, hat der zweite Bildschirm der Freigabe die falschen Schaltflächenfarben. Der erste Bildschirm ist OK. Dieses Problem hat eine Menge Zeit und einen großen Eimer mit Antworten diskutiert hier gefunden werden kann: Cannot set text color of Send and Cancel buttons in the mail composer when presented from the UIActivityViewController in iOS7Falsche textColor in Schaltflächen beim Teilen mit WhatsApp über UIActivityViewController

Die Antwort Fixes für mich die Schaltfläche Farben:

  • MFMailComposeViewController
  • und den ersten Bildschirm, wenn Austausch zu WhatsApp

Aber aus irgendeinem Grund nicht die zweite.

Das hat das Update für den ersten Bildschirm:

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTintColor:[UIColor whiteColor]]; 

Aber auch das Aussehen aller UIBarButtonItems Einstellung nicht funktioniert:

[[UIBarButtonItem appearance] setTintColor:[UIColor whiteColor]]; 

Beispielcode nicht funktioniert:

 self.window?.tintColor = UIColor.white 
     let activityController = UIActivityViewController.init(activityItems: items, applicationActivities: nil) 

     if let vc = delegate?.currentViewController() { 
      sender.isEnabled = false 

      vc.present(activityController, animated: true, completion: { 
       sender.isEnabled = true 
      }) 
      activityController.navigationController?.navigationBar.tintColor = UIColor.white 
      activityController.view.tintColor = UIColor.white 

Screenshots:

erste Bildschirm (OK) Whatsapp first screen (OK) Zweiter Bildschirm (nicht OK) Whatsapp second screen (NOT OK) Per E-Mail (OK) Email (OK)

Antwort

1

Versuchen Sie einfach durch die UIWindow sich ändernden tintColor in Ihrem Appdelegate Methode didFinishLaunchingWithOptions. Es wird dann automatisch an alle UIView-Nachkommen übergeben.

[self.window setTintColor:[UIColor whiteColor]]; 

Hoffe, das wird Ihnen helfen.

Es könnte auch ein Problem mit der dritten Partei sein, die (overriding) die tintColor erneut setzen würde.

+0

Nicht funktioniert. Ich habe den Code hinzugefügt, was ich getestet habe –

+0

@SjoerdPerfors Es könnte auch ein Problem mit der dritten Partei sein, die diese Einstellung überschreiben würde. –

Verwandte Themen