MFMessageComposeViewController未正确显示

我正在使用MFMessageComposeViewController为了显示SMS发送接口。

我的应用程序使用全屏幕,状态栏被plist文件中的设置隐藏(状态栏最初隐藏= YES)。

当我显示消息作曲者:

+(void)composeSMS:(id)sender { if (![MFMessageComposeViewController canSendText]) return; MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init]; controller.wantsFullScreenLayout = YES; controller.messageComposeDelegate = sender; [controller setBody:@"He descubierto un App estupenda! . "]; [controller setModalPresentationStyle:UIModalTransitionStyleFlipHorizontal]; if (controller) [sender presentModalViewController:controller animated:YES]; [controller release]; } 

问题是当作曲者显示导航栏在y = 0的顶部时,但是在这个栏和视图的其余部分之间出现一个与状态栏大小相同的空白空间。 状态栏显示在此屏幕(第二个问题)中,但与作曲者视图的导航栏重叠。

在没有隐藏状态栏的其他项目中,这就像一个魅力。 但是,这是第一个没有状态栏的项目,这种情况正在发生。

任何人都知道如何解决它?

谢谢。

模态显示消息控制器后隐藏状态栏。 像这样的东西:

 controller.wantsFullScreenLayout = NO; [self presentModalViewController:controller animated:YES]; [[UIApplication sharedApplication] setStatusBarHidden:YES]; 

我在应用程序中使用iMessage的方式是自己控制状态栏。 例如:

 [[UIApplication sharedApplication] setStatusBarHidden:FALSE withAnimation:UIStatusBarAnimationSlide]; MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init]; controller.messageComposeDelegate = self; [self presentModalViewController:controller animated:TRUE]; [controller release]; 

然后当通过发送或取消完成时:

 - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result { [self dismissModalViewControllerAnimated:TRUE]; [[UIApplication sharedApplication] setStatusBarHidden:TRUE withAnimation:UIStatusBarAnimationSlide]; self.view.frame = CGRectMake(0.0, 0.0, [LayoutHelper width], [LayoutHelper height]); self.view.center = CGPointMake([LayoutHelper xCenterPoint], [LayoutHelper yCenterPoint]-20); } 

这似乎显示iMessage,然后返回到应用程序没有任何空白的状态栏被添加或删除出现的空间。

这是我的第一篇文章,所以我希望这有助于某种方式。

干杯