У меня есть базовое приложение UINavigationController / UITabBarController, и все работает нормально, но MFMailComposeViewController сводит меня с ума.Я прошел почти каждый пост переполнения стека о MFMailComposeViewController и попробовал его, но после того, как он дает мне EXC-BAD-EXCESS, когда я пытаюсь отклонить его из родительского представления.
Вот мой код для MFMailComposeViewController.
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
UIAlertView *alert;
if (result == MFMailComposeResultFailed) {
alert = [[UIAlertView alloc] initWithTitle:@"Message Failed!" message:@"Your email has failed to send" delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
[alert show];
[alert release];
}
[self dismissModalViewControllerAnimated:YES];
//[controller dismissModalViewControllerAnimated:YES];
//[[self parentViewController]dismissModalViewControllerAnimated:YES];
}
Я не знаю, где моя ошибка или что не так с этим почтовым композитором.Просьба предоставить некоторую направляющую линию.
Для получения дополнительной информации ... здесь я предоставляю код ...
-(void)mailsender
{
NSUserDefaults *invoiceautogenerator = [NSUserDefaults standardUserDefaults];
NSString *invoicestring = [invoiceautogenerator objectForKey:@"invoice"];
NSString *MemoString = [[NSUserDefaults standardUserDefaults]valueForKey:@"SALEMEMODETAIL"];
NSString *PassUniqeNumer = [[NSUserDefaults standardUserDefaults]valueForKey:@"UNIQUREFKEYDATA"];
MFMailComposeViewController *mail1 = [[[MFMailComposeViewController alloc] init]autorelease];
mail1.mailComposeDelegate = self;
[self databaseOpen];
NSString *str = [NSString stringWithFormat:@"Select EmailID from tblMercuryDetail"];
NSLog(@"str:%@",str);
NSArray *Query = [[NSArray alloc]init];
Query = [database executeQuery:str];
NSLog(@"Array DataL%@",Query);
NSString *Emailid = [NSString stringWithFormat:@"%@",[Query valueForKey:@"EmailID"]] ;
NSLog(@"Emailid:%@",Emailid);
Emailid = [Emailid stringByReplacingOccurrencesOfString:@"(" withString:@""];
Emailid = [Emailid stringByReplacingOccurrencesOfString:@")" withString:@""];
Emailid = [Emailid stringByReplacingOccurrencesOfString:@"\"" withString:@""];
Emailid = [Emailid stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSLog(@"Emailid:%@",Emailid);
[Query release];
[database close];
UIImage *savedimage = [self loadImage:invoicestring];
NSData *myData = UIImagePNGRepresentation(savedimage);
[mail1 addAttachmentData:myData mimeType:@"image/png" fileName:@"sign.png"];
if ([MFMailComposeViewController canSendMail]) {
//Setting up the Subject, recipients, and message body.
[mail1 setToRecipients:[NSArray arrayWithObjects:Emailid,nil]];
[mail1 setSubject:@"Receipt"];
[mail1 setMessageBody:@"Message of email" isHTML:NO];
NSString *emailBody;
[self databaseOpen];
NSString *str = [NSString stringWithFormat:@"Select * from tblGiftTransaction where InvoiceNo = '%@' ",invoicestring];
NSArray *Arraydata = [[NSArray alloc]init];
Arraydata = [database executeQuery:str];
NSString *PurchaseAmt = [NSString stringWithFormat:@"%@",[Arraydata valueForKey:@"PurchaseAmt"]];
NSString *TransactionType = [NSString stringWithFormat:@"%@",[Arraydata valueForKey:@"TransactionType"]];
NSLog(@"==%@",Arraydata);
emailBody = [NSString stringWithFormat:@
"<br>Memo: </br> " "%@"
"<br>Ref Number: </br> ""%@"
"<br>Invoice No: </br> ""%@"
"<br>Purchase Amount: </br> ""$%@"
"<br>Transaction Type: </br> ""%@"
,MemoString,PassUniqeNumer,invoicestring,PurchaseAmt,TransactionType
];
NSLog(@"%@",emailBody);
[mail1 setMessageBody:emailBody isHTML:YES];
[[self parentViewController] presentModalViewController:mail1 animated:YES];
[database close];
}
//[mail release];
}
Спасибо.