Как скрыть setToComposer в MFMailComposeViewControllerDelegate? - PullRequest
0 голосов
/ 20 августа 2011

В этом представлении с почтовым клиентом в приложении отображается имя человека, которому было отправлено письмо.Я бы хотел, чтобы пользователи не могли видеть, кому они будут отправлять электронные письма.

-(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 ]

1 голос
/ 20 августа 2011

Для этого вам нужно кодировать пользовательский вид с функцией отправки электронной почты.

0 голосов
/ 20 августа 2011

Как сказал @ seppo0010, вы не можете этого сделать. Apple создала специальный пользовательский интерфейс, который использует MFMailComposeViewController. Таким образом, если вы используете MFMailComposeViewController, вы не можете изменить то, как выглядит представление.

Ваша альтернатива - использовать другое сообщение viewController, которое вы должны создать сами. Создайте viewController и затем передайте данные из сообщения на ваш собственный сервер или куда-либо еще, куда вы хотите его отправить. Я пытался создать его самостоятельно, но я совершенно недооценил объем работы, которую он занимал.

Если вы планируете искать готовое решение, мне показались примеры с открытым исходным кодом, которые утверждают, что делают это, но я никогда не заставлял одно работать.

Мой совет - просто придерживаться того, что предлагает Apple.

0 голосов
/ 20 августа 2011

Это невозможно.Если вы намереваетесь использовать MFMailComposeViewController, пользователь сможет видеть получателей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...