MFMessageComposeViewController在iPad上无法以表单形式呈现

4

如果我在一个视图控制器上运行这段代码,在iPad (iOS 8)上:

MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc]init]autorelease];
controller.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentViewController:controller animated:YES completion:nil];

我看到了一个全屏的消息撰写视图。但我没有找到任何关于MFMessageComposeViewController忽略模态呈现样式的文档或参考资料。这是正常的吗?还是我漏掉了什么?
1个回答

4

最近遇到了类似的问题,目标是 iOS8。看起来 MFMessageComposeViewController 忽略了 modalPresentationStyle 属性。奇怪的是,MFMailComposeViewController 似乎没有这个问题。不管怎样,为了解决这个问题,我将 MFMessageComposeViewController 嵌入到一个 UIViewController 中,并展示它。以下是实现这一点的代码:

var messageViewController = MFMessageComposeViewController()
messageViewController.messageComposeDelegate = self

let containerViewController = UIViewController()
containerViewController.view.addSubview(messageViewController.view)
messageViewController.willMoveToParentViewController(nil)
containerViewController.addChildViewController(messageViewController)
messageViewController.didMoveToParentViewController(containerViewController) 

containerViewController.modalPresentationStyle = .OverFullScreen
containerViewController.transitioningDelegate = self
presentViewController(containerViewController, animated: true, completion: nil)

成功地实现了模态呈现的方式。 只是不清楚为什么在“messageViewController.willMoveToParentViewController(nil)”中使用nil。 - Dren

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接