MFMailComposeViewController может отправить оповещение об изменении почты, если возвращено «нет»

#iphone #objective-c #ios #cocoa-touch #ipad

#iPhone #objective-c #iOS #cocoa-touch #iPad

Вопрос:

Я использую MFMailComposeViewController canSendMail в моем приложении, все работает отлично, но если на iPhone или iPad нет учетных записей, он возвращает стандартное оповещение, которое я хотел бы изменить. Если я добавлю предупреждение в else, оно вернет 2 предупреждения. Есть ли способ изменить стандартное предупреждение, которое он возвращает? Или, по крайней мере, изменить текст в нем?

 MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
if ([MFMailComposeViewController canSendMail]) {
    controller.mailComposeDelegate = self;
    controller.navigationBar.tintColor = [UIColor grayColor];
    NSArray *toRecipients = [NSArray arrayWithObject:@"info@info.nl"];
    [controller setToRecipients:toRecipients];
    [controller setSubject:@"bericht van info"];
    [self presentModalViewController:controller animated:YES];
    [controller release];
}
else {

}
  

Ответ №1:

попробуйте одну вещь.. Переместите код инициализации MFMailComposeViewController внутрь canSendMail блока.

Комментарии:

1. блестяще просто!

Ответ №2:

Переместите выделение ‘MFMailComposeViewController’ внутрь if:

 if ([MFMailComposeViewController canSendMail]) {
    MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
    controller.mailComposeDelegate = self;
    controller.navigationBar.tintColor = [UIColor grayColor];
    NSArray *toRecipients = [NSArray arrayWithObject:@"info@info.nl"];
    [controller setToRecipients:toRecipients];
    [controller setSubject:@"bericht van info"];
    [self presentModalViewController:controller animated:YES];
    [controller release];
} else {
    // Display custom alert here.
}
  

Ответ №3:

Вы можете проверить, может ли устройство отправлять электронные письма с

[MFMailComposeViewController canSendMail]

И, если нет, покажите диалоговое окно на вашей стороне

Комментарии:

1. Я знаю, что это касается возвращаемого им alertview, который я хотел бы изменить. Он возвращает стандартное оповещение с заголовком: «Нет учетных записей электронной почты» и сообщением: «Пожалуйста, настройте учетную запись электронной почты для отправки электронной почты». Я хочу изменить это предупреждение, но я не уверен, как. Если я добавлю alertview в else, он просто вернет еще 1 alertview.

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