У меня есть этот код, который послать по электронной почте пользователям, Im используя MFMailCompose:почта Compose не распускать, когда нажмите кнопку отмены
.h файл
#import <UIKit/UIKit.h>
#import <MessageUI/MessageUI.h>
#import <MessageUI/MFMailComposeViewController.h>
@interface TestViewController : UIViewController <MFMailComposeViewControllerDelegate, MFMessageComposeViewControllerDelegate>
@property(nonatomic,assign) id<MFMailComposeViewControllerDelegate> mailComposeDelegate;
.m файл
@synthesize mailComposeDelegate
-(void)sendEmail:(NSString*)valor{
//Valor receive the email
NSString *corpoMensagem = @"No have body yet...";
// From within your active view controller
if([MFMailComposeViewController canSendMail]) {
MFMailComposeViewController *mailCont = [[MFMailComposeViewController alloc] init];
mailCont.mailComposeDelegate = self;// Required to invoke mailComposeController when send
[mailCont setSubject:@"FazerBem - Recibo de Compra"];
[mailCont setToRecipients:[NSArray arrayWithObject:valor]];
[mailCont setMessageBody:corpoMensagem isHTML:YES];
[self presentViewController:mailCont animated:YES completion:nil];
}
}
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
if (error){
NSString *errorTitle = @"Erro to send";
NSString *errorDescription = [error localizedDescription];
UIAlertView *errorView = [[UIAlertView alloc]initWithTitle:errorTitle message:errorDescription delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
[errorView show];
}
[self becomeFirstResponder];
[self dismissViewControllerAnimated:YES completion:nil];
}
-(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{
}
Когда я нажимаю кнопку отправки, он может отправить электронное письмо получателю и может закрыть экран, теперь, когда я нажимаю кнопку кнопка отмены, он открывает «Удалить проект» более 2-х вариантов и «сохранить проект», когда я нажимаю на одном из аварий приложения и возвращает мне следующую ошибку:
[TestViewController respondsToSelector:]: message sent to deallocated instance 0x16b3b470
Как я могу решить эту проблему?
Вы используете iOS 8? – Milo
Я использую iOS 7.1.2 – user3781174
Также включите контрольные точки исключения, чтобы выяснить, какая строка вызывает проблему. – Milo