MFMailComposeViewController Absturz während dismissModalViewControllerAnimated in iOS5

Ich bin mit MFMailComposeViewController in meinem conde bieten E-Mail-Funktionalität, aber nach dem senden von Nachrichten oder wenn ich stornieren möchte E-mail-es wird Abstürzen.

unten ist mein code:

(IBAction)FnForPlutoSupportEmailButtonPressed:(id)sender {
{
    if ([MFMailComposeViewController canSendMail])
    {
        MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init];

        mailer.mailComposeDelegate = self;

        [mailer setSubject:@"Need help from Pluto support team"];

        NSArray *toRecipients = [NSArray arrayWithObjects:@"[email protected]",nil];
        [mailer setToRecipients:toRecipients];


        NSString *emailBody = @"";

        [mailer setMessageBody:emailBody isHTML:NO];

        //mailer.modalPresentationStyle = UIModalPresentationPageSheet;

        [self presentModalViewController:mailer animated:YES];

    }
    else
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Failure"
                                                        message:@"Your device doesn't support the composer sheet"
                                                       delegate:nil
                                              cancelButtonTitle:@"OK"
                                              otherButtonTitles: nil];
        [alert show];
    }
} }

    (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
//Notifies users about errors associated with the interface    
switch (result)
    {       case MFMailComposeResultCancelled:
                        break;
                    case MFMailComposeResultSaved:
                        break;
                    case MFMailComposeResultSent:
                        break;
                    case MFMailComposeResultFailed:
                        break;
                    default:
                        break;
    } 
    [self dismissModalViewControllerAnimated:YES];
     }

Habe ich gelesen, die alle blog-post, aber keine Lösung gefunden, Diese blog-post ist mit guten Erläuterungen über dieses, aber pro bin ich nicht präsentieren, meine view-controller in viewdidload oder viewdidappear.

Ich bin Immer EXE_BAD_ACCESS, ist nach der crash-log :

**

> #0  0x00000000 in ?? ()
> #1  0x01dc5aa4 in -[UIViewController _setViewAppearState:isAnimating:] ()
> #2  0x01dc5f47 in -[UIViewController __viewDidDisappear:] ()
> #3  0x01dc6039 in -[UIViewController _endAppearanceTransition:] ()
> #4  0x01dd2e7e in -[UIViewController(UIContainerViewControllerProtectedMethods) endAppearanceTransition] ()
> #5  0x01fc8de1 in -[UIWindowController transitionViewDidComplete:fromView:toView:] ()
> #6  0x01da334b in -[UITransitionView notifyDidCompleteTransition:] ()
> #7  0x01da3070 in -[UITransitionView _didCompleteTransition:] ()
> #8  0x01da531b in -[UITransitionView _transitionDidStop:finished:] ()
> #9  0x01d23fb6 in -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] ()
> #10 0x01d24154 in -[UIViewAnimationState animationDidStop:finished:] ()
> #11 0x0163bbce in CA::Layer::run_animation_callbacks ()
> #12 0x03664fe4 in _dispatch_client_callout ()
> #13 0x03655997 in _dispatch_main_queue_callback_4CF ()
> #14 0x012c03b5 in __CFRunLoopRun ()
> #15 0x012bf804 in CFRunLoopRunSpecific ()
> #16 0x012bf6db in CFRunLoopRunInMode ()
> #17 0x030f1913 in GSEventRunModal ()
> #18 0x030f1798 in GSEventRun ()
> #19 0x01ce82c1 in UIApplicationMain ()

**

Als pro aktualisiert Dokument von apple für ios 5, die Sie erwähnt :

presentModalViewController:animiert:

Stellt einen modalen view verwaltet von der gegebenen view-controller für den Benutzer. (Veraltet). Verwenden presentViewController:animated:completion: statt.)

- (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated
Parameters

Entlässt den view-controller vorgestellt wurde durch den Empfänger. (Veraltet). Verwenden dismissViewControllerAnimated:completion: statt.)

- (void)dismissModalViewControllerAnimated:(BOOL)animated

Hatte ich versucht dies auch, aber es stürzt immer noch

  • Bitte das crash-log
  • Bitte Frage mit aktuellen crash-log.
  • Versuchen Sie aktivieren NSZombies zu sehen, wenn etwas über wird veröffentlicht. ich sehe es nicht in deinem code, eigentlich sehe ich ein Leck seit Ihr nicht die Freigabe der mailer (es sei denn, ARC verwendet wird).
  • Ich bin mit der ARC und NSZombies aktiviert ist.
  • Dein code funktioniert perfekt für mich, erste Gedanken.. was tun Ihre Importe Aussehen, und sind Sie Einstellung MFMailComposeViewControllerDelegate?
  • Ja, ich bin Einstellung Delegieren und import ist auch richtig.
  • Wow - wer hätte gedacht, Sie wurden mit SHKSwizzle - Sie werden nie erwähnt, das ist jetzt die Antwort!?!
  • Sorry David, ich hätte nie gedacht, dass SHKSwizzle ist, gebe mir Mühe. danke für die Hilfe Mann.

InformationsquelleAutor Gaurav | 2012-07-31
Schreibe einen Kommentar