如何在MFMailComposeViewControllerDelegate中隐藏setToComposer?

时间:2011-08-20 02:59:33

标签: iphone objective-c ios cocoa-touch email

此视图与应用内电子邮件客户端显示正在通过电子邮件发送的个人的姓名。我希望用户无法看到他们将通过电子邮件发送给谁。

-(IBAction)email {
    MFMailComposeViewController *composer = [[MFMailComposeViewController alloc] init];
    [composer setMailComposeDelegate:self];
    if ([MFMailComposeViewController canSendMail]) {
        [composer setToRecipients:[NSArray arrayWithObjects:@"sample@gmail.com", nil]];


        [composer setSubject:@"Subject"];
        [composer setMessageBody:@"message here" isHTML:NO];
        [composer setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
        [self presentModalViewController:composer animated:YES];
        [composer release];
    }
    else
        [composer release];
}

-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {
    if (error) {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"error"
                                                        message:[NSString stringWithFormat:@"error %@", [error description]]
                                                       delegate:nil cancelButtonTitle:@"dismiss" otherButtonTitles:nil, nil];
        [alert show];
        [alert release];
        [self dismissModalViewControllerAnimated:YES];
    }
    else {
        [self dismissModalViewControllerAnimated:YES];
    }
} 

3 个答案:

答案 0 :(得分:1)

为此,您需要使用电子邮件发送功能对自定义视图进行编码。

答案 1 :(得分:0)

那是不可能的。如果您打算使用MFMailComposeViewController,则用户将能够看到收件人。

答案 2 :(得分:0)

正如@ seppo0010所说,你做不到。 Apple创建了一个MFMailComposeViewController使用的特定用户界面。因此,如果使用MFMailComposeViewController,则无法修改视图的外观。

您的替代方法是使用您必须自己创建的其他消息viewController。创建一个viewController,然后将消息中的数据传输到您自己的服务器或您希望发送的其他地方。我试图自己创造一个,但我完全低估了它所涉及的工作量。

如果您打算寻找预先制定的解决方案,我似乎有一些开源示例声称可以做到这一点,但我从未让一个人工作过。

我的建议是坚持使用Apple提供的功能。