1

迁移到 iOS 7 后,当我展示 MFMailComposeViewController 并关闭视图控制器时,父视图控制器似乎向上移动了。这就是我展示视图控制器的方式。

MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init];
mailer.mailComposeDelegate = self;        
[mailer setSubject:@"A Message from App"];

[self presentViewController:mailer animated:NO
                     completion:^{
                     }
];

该代码在之前的 iOS 中运行良好。请帮助我了解这里发生了什么。这似乎只在 iPhone 上

4

2 回答 2

0

虽然您没有提供有关您的应用程序的大量详细信息,但可能发生的情况是由于 iOS7 的半透明导航栏和工具栏功能使您的视图尺寸“不同”。

要对此进行测试,请在 viewDidAppear 中添加类似内容:

NSLog(@"height: %f", self.view.bounds.size.height;

在 iOS7 模拟器中运行它,它将返回 568,但 iOS6 将返回 455(或基于您如何设置视图选项的类似内容)。

于 2013-09-20T20:12:17.847 回答
-1

解决此问题的一种方法是返回到 iOS 7 之前的状态栏。您可以在您的应用程序委托中执行此操作:

if(IS_IOS_7) {
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
    self.window.clipsToBounds =YES;
    self.window.frame =  CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height-20);
    self.window.bounds = CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height);
}
于 2013-10-11T17:10:44.283 回答