调整MFMailComposeViewController的大小,防止它覆盖整个屏幕

时间:2014-04-27 20:46:04

标签: ios iphone mfmailcomposeviewcontroller

我有一个MFMailComposeViewController,并使用此方法调用它:

    - (IBAction)sendEmail:(id)sender {

    NSArray *toRecipents = [NSArray arrayWithObject:@"email@email.com"];

    MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init];
    mc.mailComposeDelegate = self;
    [mc setSubject:@"Email"];
    [mc setMessageBody:message.text isHTML:NO];
    [mc setToRecipients:toRecipents];

    // Present mail view controller on screen
    [self presentViewController:mc animated:YES completion:NULL];

}

我想当控制器加载时,我希望他的高度比视图的高度小50像素,我不希望他占据整个屏幕。有没有办法这样做?。

编辑:我面临的问题是,我正在调用的MFMailComposeViewController最初位于使用模态页面卷曲效果调用的视图控制器内,因此卷曲效果阻止我按下发送电子邮件按钮!这是一张图片

enter image description here

所以无论你尝试多少,你都无法点击发送按钮......在这种情况下我该怎么办而不会被苹果拒绝

编辑2: 我可以关闭模​​态卷曲页面效果,然后弹出这个视图控制器吗?

1 个答案:

答案 0 :(得分:1)

据我所知,如果没有标准或允许的方式来做你想做的事情。
此外,我会担心通过批准,因为Apple指出了关于邮件编辑的以下内容:

重要说明:此类的视图层次结构是私有的,您不能修改它。但是,您可以使用UIAppearance协议自定义实例的外观。 在呈现邮件comopose视图控制器后,您的应用无法更改电子邮件内容。用户可以编辑呈现的实例的内容,但系统忽略程序化更改。如果要为内容字段设置值,请在显示界面之前执行此操作。 class reference

如果您对发送电子邮件有一些自定义设计要求,我建议您实施自己的观看并使用某个服务器发送电子邮件,但我不确定您的设计要求有多难。