#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 отображается контроллером. Я не уверен, сможете ли вы это изменить. Я думаю, что это лучший подход, чтобы попытаться угадать, можете ли вы отправлять письма или нет.