Sin*_*hus 14 email iphone objective-c iphone-sdk-3.0 mfmailcomposeviewcontroller
我在我的应用程序中使用MFMailComposeViewController进行应用内电子邮件,但我无法更改标题.默认情况下,它会在标题中显示主题,但我想将标题设置为其他内容.我怎样才能做到这一点?
我试过了:
controller.title = @"Feedback";
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
这是我的代码:
- (IBAction)email {
NSArray *array = [[NSArray alloc] initWithObjects:@"myemail@gmail.com", 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];
}
Run Code Online (Sandbox Code Playgroud)
Bry*_*nry 21
您可以使用单行为MFMailComposeViewController设置不同的标题,如下所示.
...
[self presentModalViewController:controller animated:YES]; // Existing line
[[[[controller viewControllers] lastObject] navigationItem] setTitle:@"SomethingElse"];
...
Run Code Online (Sandbox Code Playgroud)
但是,此实现有效地依赖于MFMailComposeViewController的未记录的功能.您正在访问私有类的navigationItem(_MFMailComposeRootViewController)并将其标题更改为邮件主题以外的其他内容.我赞同Art Gillespie的观点,因为你不应该这样做,很可能被苹果评论家拒绝做这样的事情.此外,此过程可能会在iPhone OS的任何次要版本中完全更改,可能会导致您的用户崩溃,直到您可以发布更新来修复该行为.
不过,您的决定取决于您,如果您仍想采取这些未经推荐的步骤,那么就是这样做的.
Art*_*pie 14
从MFMailComposeViewController类参考:
重要提示:邮件撰写界面本身不可自定义,您的应用程序不得修改.此外,在显示界面后,您的应用程序不允许对电子邮件内容进行进一步更改.
| 归档时间: |
|
| 查看次数: |
12888 次 |
| 最近记录: |