Unable to dismiss MFMailComposeViewController, delegate not called

前端 未结 4 1074
没有蜡笔的小新
没有蜡笔的小新 2021-01-30 12:45

I am calling MFMailComposeViewController from a UITableViewController. Problem is the delegate method is never called when I select Cancel or

4条回答
  •  终归单人心
    2021-01-30 13:17

    I faced the same problem and was searching for a fix from past 2 days then I found a fix myself and you won't believe how minor it was.

    In my case the view controller (say 'DetailsTableViewController' as per this question) from where I was presenting the MFMailComposeViewController is already being presented from some other view controller (say 'BaseViewController').

    The issue was lying in the 'modalPresentationStyle' of 'DetailsTableViewController' while presenting it from BaseViewController.

    The moment I changed it from 'UIModalPresentationFormSheet' to 'UIModalPresentationPageSheet' (for that matter any thing other than 'UIModalPresentationFormSheet') issue got resolved and mail controller delegate methods started firing as usual.

    Note: I was already calling the below method in 'DetailsTableViewController' (for this example) so it didn't really matter for me which 'modalPresentationStyle' I was using.

        - (void)viewWillLayoutSubviews{
        [super viewWillLayoutSubviews];
        self.view.superview.bounds = CGRectMake(0, 0, 1024, 768);
        self.view.superview.backgroundColor = [UIColor clearColor];
    }
    

提交回复
热议问题