Changer le titre de MFMailComposeViewController
Je suis en utilisant MFMailComposeViewController pour in-app e-mail dans mon application, mais je ne suis pas en mesure de modifier le titre. En tant que par défaut c'est montrer l'objet dans le titre, mais je voudrais mettre le titre à quelque chose d'autre. Comment puis-je le faire?
J'ai essayé:
controller.title = @"Feedback";
mais il ne fonctionne pas.
Voici mon code:
- (IBAction)email {
NSArray *array = [[NSArray alloc] initWithObjects:@"[email protected]", nil];
MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
[[controller navigationBar] setTintColor:[UIColor colorWithRed:0.36 green:0.09 blue:0.39 alpha:1.00]];
controller.mailComposeDelegate = self;
controller.title = @"Feedback";
[controller setSubject:@"Long subject"];
[controller setMessageBody:@""
isHTML:NO];
[controller setToRecipients:array];
[self presentModalViewController:controller animated:YES];
[controller release];
[array release];
}
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {
[self becomeFirstResponder];
[self dismissModalViewControllerAnimated:YES];
}
OriginalL'auteur Sindre Sorhus | 2009-11-15
Vous devez vous connecter pour publier un commentaire.
Vous pouvez définir un titre différent pour votre MFMailComposeViewController avec une seule ligne, comme si.
Toutefois, cette mise en œuvre efficace s'appuie sur des fonctions non documentées de MFMailComposeViewController. Vous avez accès au navigationItem d'un cours privé (_MFMailComposeRootViewController) et la modification de son titre à quelque chose d'autre que le sujet du mail. Je me fais l'écho de l'Art Gillespie sentiment que vous ne devraient pas le faire et sont très susceptibles d'être rejetés par les réviseurs d'Apple pour faire quelque chose comme cela. En outre, ce processus pourrait complètement changer en tout point mineur sortie de l'iPhone OS, ce qui pourrait causer des accidents pour vos utilisateurs jusqu'à ce que vous pouvez libérer une mise à jour pour corriger le comportement.
La décision est à vous, cependant, et si vous voulez toujours préférable d'éviter de prendre ces mesures, c'est comment vous le faites.
peut être écrite comme
controller.topViewController.navigationItem.title = @"SomethingElse";
Cette solution ne fonctionne pas pour moi sur iOS8 - le titre reste en place
Ne travaillant pas dans iOS8.
OriginalL'auteur Bryan Henry
De la MFMailComposeViewController Classe de Référence:
C'est toujours une réponse à votre question, en utilisant des Api privées sur l'iPhone est fortement déconseillée. Même si c'est possible, il est intéressant de savoir que ce n'est pas le plan d'action proposé.
Ok, peut-être que votre droit, mais je voudrais savoir comment le faire 🙂 ?
OriginalL'auteur Art Gillespie
Il semble que le sujet du message alimente le titre de MFMailComposeViewController dans iOS 8.
OriginalL'auteur thefoyer
Vous devriez être en mesure de prendre juste un point de vue (contrôleur.la vue) et le placer à l'intérieur de votre contrôleur ... en ce moment, vous n'êtes pas modifier quoi que ce soit et vous êtes en train de faire presque la même chose comme Apple de l'iPad, l'application email lors de la rédaction d'un e-mail ... même chose devrait fonctionner sur iPhone aussi ...
OriginalL'auteur Ondrej
Sbrocket de répondre à de grandes œuvres. Voici comment ajouter un titre à afficher (étiquette):
Mêmes commentaires que ci-dessus, il n'est pas vraiment recommandé pour personnaliser
MFMailComposeViewController
...OriginalL'auteur Adriano Lucas
Le plus probable, vous avez à creuser vers le bas dans la hiérarchie vue de trouver les raw UINavigationBar qui contient le titre, et de définir manuellement le titre.
Le programme de la classe de vidage peut être utile ici de déterminer l'exacte classes utilisées. Essais, d'erreurs, et un débogueur sont probablement votre meilleur pari.
OriginalL'auteur Grant Paul