MFMailComposeViewController擦除rootViewcontroller

时间:2014-04-25 11:54:12

标签: ios uiviewcontroller mfmailcomposeviewcontroller

我正在使用以下代码向用户发送电子邮件:

MFMailComposeViewController *vc = [MFMailComposeViewController new];
[vc setSubject:@"Test Subject"];
[vc setMessageBody:@"Test Body" isHTML:NO];
[vc setMailComposeDelegate:self];
[self presentViewController:vc animated:YES completion:nil];

这将打开一个ViewController,其中包含您发送电子邮件所需的所有内容,但它会完全删除用户之前所使用的ViewController内的所有内容。它只会移除subviews,因为根视图仍然存在,因为backgroundColor仍然相同。

我已经尝试initWithRootViewController:但它崩溃了。

发生了什么事?

2 个答案:

答案 0 :(得分:1)

我发现了这个错误......它不在上面的代码中。在呈现mailVC时似乎调用了viewWillDissapear::/

在那里我有删除每个子视图的代码,所以是的,发现问题无论如何都要感谢那些回答并为此带来的不便而感到抱歉。

答案 1 :(得分:0)

我不确定你的意思"完全擦除所有东西"。但是,对于iPad(而不是iPhone)来说,当呈现视图控制器时,默认情况下会全屏显示。如果您想更改它,则必须设置所呈现的视图控制器的modalPresentationStyle(在您的情况下为MFMailComposeViewController

您的代码如下所示:

MFMailComposeViewController *vc = [MFMailComposeViewController new];
[vc setSubject:@"Test Subject"];
[vc setMessageBody:@"Test Body" isHTML:NO];
[vc setMailComposeDelegate:self];
vc.modalPresentationStyle = UIModalPresentationFormSheet; //You can use custom size too
[self presentViewController:vc animated:YES completion:nil];