我正在使用以下代码向用户发送电子邮件:
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:
但它崩溃了。
发生了什么事?
答案 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];