0

내 iPhone 응용 프로그램에 "이메일"기능을 추가했으며 iPhone에서는 충돌하지만 시뮬레이터에서는 작동합니다. 이 기기의 이메일에 충돌하는 응용 프로그램

이 장치

에 충돌 왜 나를 인도 해주십시오 것은

-(IBAction)sendMail{ 
    MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init]; 
    controller.mailComposeDelegate = self; 
    [controller setSubject:@"Contact"]; 

    [controller setToRecipients:[NSArray arrayWithObject:@"[email protected]"]]; 
    [controller setMessageBody:@"" isHTML:NO]; 
    [self presentModalViewController:controller animated:YES]; 
    [controller release]; 
} 

- (void)mailComposeController:(MFMailComposeViewController*)controller 
      didFinishWithResult:(MFMailComposeResult)result 
         error:(NSError*)error; 
{ 
    if (result == MFMailComposeResultSent) { 
     NSLog(@"It's away!"); 
    } 
    [self dismissModalViewControllerAnimated:YES]; 
} 
+0

Google에서 도움이 될 수있는 충돌 메시지가 있습니까? – phi

+0

오류 메시지를 게시 하시겠습니까? – Devraj

+0

MailController를 닫기 전에 mailComposeDelegate를 지우십시오. – Victor

답변

2

사용이 코드는 잘 동작을 시도 코드를입니다.

-(IBAction)Btn_EmailPressed:(id)sender{ 
    if (![MFMailComposeViewController canSendMail]) { 
     UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"Alert" message:@"Email cannot be configure." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
     [alert show]; 
     [alert release]; 
     return; 
    }else { 
     picker = [[MFMailComposeViewController alloc] init]; 
     picker.mailComposeDelegate=self; 
     [picker setToRecipients:nil]; 
     [picker setSubject:@"Email"]; 
     [picker setMessageBody:nil isHTML:NO]; 
     NSArray *toRecipients = [[NSArray alloc] initWithObjects:lblSite.text,nil]; 
     [picker setToRecipients:toRecipients]; 
     [self presentModalViewController:picker animated:YES]; 
    } 
} 


- (void)mailComposeController:(MFMailComposeViewController*)mailController didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error { 
    NSString *msg1; 
    switch (result) 
    { 
     case MFMailComposeResultCancelled: 
      msg1 [email protected]"Sending Mail is cancelled"; 
      break; 
     case MFMailComposeResultSaved: 
      [email protected]"Sending Mail is Saved"; 
      break; 
     case MFMailComposeResultSent: 
      msg1 [email protected]"Your Mail has been sent successfully"; 
      break; 
     case MFMailComposeResultFailed: 
      msg1 [email protected]"Message sending failed"; 
      break; 
     default: 
      msg1 [email protected]"Your Mail is not Sent"; 
      break; 
    } 
    UIAlertView *mailResuletAlert = [[UIAlertView alloc]initWithFrame:CGRectMake(10, 170, 300, 120)]; 
    mailResuletAlert.message=msg1; 
    [email protected]"Message"; 
    [mailResuletAlert addButtonWithTitle:@"OK"]; 
    [mailResuletAlert show]; 
    [mailResuletAlert release]; 
    [self dismissModalViewControllerAnimated:YES]; 
} 
1

MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init]; 


    if(controller && [MFMailComposeViewController canSendMail]){ 

     controller.mailComposeDelegate = self; 
     [controller setSubject:@"Contact"]; 

     [controller setToRecipients:[NSArray arrayWithObject:@"[email protected]"]]; 
     [controller setMessageBody:@"" isHTML:NO]; 
     [self presentModalViewController:controller animated:YES]; 


    } 

if (controller) { 

    [controller release];   

} 
2

당신이 구성되지 않은 경우 귀하의 아이폰 장치에서 모든 이메일 계정이 당신이 mfmailcomposer를 호출 할 때 시뮬레이터에서 작동하지만 장치에 실패하고 결과가 이렇게 충돌되기 때문에 충돌의 이유가 될 수있을 수 있습니다 장치에 메일을 구성한 다음 위의 코드를 시도하십시오.