2015-09-27 10 views
7

In un'app utilizzo il bianco come colore della tinta principale. Se l'utente apre UIActivityViewController, ho impostato il colore della tinta per il controller sul blu iOS standard. Questo funziona perfettamente per la visualizzazione dell'attività stessa, ma quando si vuole inviare una mail, il colore della tinta non è blu ma bianco di nuovo.UIActivityViewController: colore della tinta dei controller di vista presentati

Sarebbe bello avere un modo per impostare il colore della tinta delle viste presentate. Ce n'è uno?

apertura di un MFMailComposeViewController e impostare il colore della tinta blu ha anche un effetto sulla visualizzata UIActionSheet, non così se il MFMailComposeViewController viene aperto all'interno di un UIActivityViewController.

Visualizza gli screenshot di chiarimento: http://i.imgur.com/OggykJF.png

Edit: Questo è quello che faccio per l'aggiunta del colore di tinta al UIActivityViewController:

UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:activities]; activityController.view.tintColor = [UIColor blueColor]; [self presentViewController:activityController animated:YES completion:nil];

+0

Hai mai trovato una soluzione per questo? – wsidell

risposta

-1

Impostare la tintColor sul UIActivityViewController dopo l'inizializzazione, ma prima di presentare .

UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:activities]; 

//Set the tint color on just the activity controller as needed here before presenting 
[activityController.view setTintColor:[UIColor blueColor]]; 

[self presentViewController:activityController animated:YES completion:nil]; 
+0

Grazie per la tua risposta! Naturalmente questo è esattamente quello che faccio. Quindi, questo non mi aiuta. – triplejberger

1

Il meglio cosa si può fare è quello di impostare il colore della tinta della finestra al sistema di blu o di qualsiasi colore tinta che si desidera sul UIActivityViewController poco prima si presenti e quindi modificare il colore della tinta della finestra posteriore di originale appena prima di respingere esso. Funzionerà. Questo è come lo faccio:

UIApplication.shared.keyWindow?.tintColor = Styles.color.systemBlue 

e poi

UIApplication.shared.keyWindow?.tintColor = Styles.color.tint 
0

io non sono riuscito a farlo funzionare a tutti, ma avete considerato l'alternativa - lasciando il testo bianco e modificando il colore di sfondo della barra di navigazione in modo che vengano visualizzati, ad es con:

UINavigationBar.appearance().backgroundColor = .black 

Questo sembra funzionare per i pulsanti sulla barra di navigazione per gli schermi di condivisione Mail e Twitter.

Problemi correlati