【问题标题】:MFMailComposeViewController wipes rootViewcontrollerMFMailComposeViewController 擦除 rootViewcontroller
【发布时间】:2014-04-25 11:54:11
【问题描述】:

我正在使用此代码为用户发送电子邮件:

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:,但它崩溃了。

发生了什么?

【问题讨论】:

  • 你的意思是解雇后? self 是什么?
  • self 是显示 mailVC ofc 的视图控制器。

标签: ios uiviewcontroller mfmailcomposeviewcontroller


【解决方案1】:

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

在那里我有删除每个子视图的代码,所以,是的,发现问题无论如何感谢那些回答的人,对给您带来的不便表示歉意。

【讨论】:

    【解决方案2】:

    我不确定您所说的“完全清除所有内容”是什么意思。但是假设这是针对 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];
    

    【讨论】:

    • 完全擦除一切我的意思是一切都消失了。它与根视图的颜色相同。当 mailVC 正在制作动画时,您可以看到一切都消失了,当您单击取消时,一切都消失了。
    • 截图会有所帮助。
    猜你喜欢
    • 2016-09-16
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 2015-05-08
    • 1970-01-01
    相关资源
    最近更新 更多