迁移到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
答案 0 :(得分:0)
虽然您没有提供有关您的应用的大量详细信息,但可能发生的情况是由于iOS7的半透明导航栏和工具栏功能导致视图的尺寸“不同”。
要对此进行测试,请在viewDidAppear中添加类似内容:
NSLog(@"height: %f", self.view.bounds.size.height;
在iOS7模拟器中运行它将返回568,但iOS6将返回455(或根据您设置视图选项的方式类似)。
答案 1 :(得分:-1)
解决问题的一种方法是返回iOS 7之前的状态栏。你可以在你的app delegate中做到这一点:
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);
}