iphone MFMessageComposeViewController,状态栏问题

时间:2011-08-23 07:44:03

标签: iphone sms

我正在使用以下代码来显示应用程序内的短信。我的应用没有状态栏。 (我在纵向视图中使用320x480像素的屏幕)

if ([MFMessageComposeViewController canSendText]) 
    {
        MFMessageComposeViewController* msgController = [[MFMessageComposeViewController alloc] init];
        msgController.recipients = [NSArray arrayWithObject:self.globalSMS];
        msgController.messageComposeDelegate = self;
        [self presentModalViewController:msgController animated:YES];
        [msgController release];
    }

这样可以显示消息视图控制器。 (但状态栏回来了,这对我来说没有必要显示) 但问题是当我点击“取消”或“发送”时,在返回应用程序后,我看到屏幕顶部(状态栏位置)的空白区域。状态栏是隐藏的。 当我的状态栏在app delegate中设置为隐藏时,为什么会发生这种情况。如何在显示应用程序内的短信视图后摆脱空白区域。

4 个答案:

答案 0 :(得分:7)

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

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

此处也回答:MFMessageComposeViewController not properly displayed

答案 1 :(得分:2)

我找到了答案。我们要在视图控制器的viewDidLoad方法中设置:

self.wantsFullScreenLayout = YES;

答案 2 :(得分:0)

问题在纵向视图中。从我所看到的MFMessageComposeViewController在景观中加载,空间不存在。然后,如果方向更改为纵向,则更正布局并且纵向中不存在空间。

注意在横向中,MFMessageComposeViewController通过从左向右滑动呈现。我认为,呈现视图的方式是解决问题的关键。

答案 3 :(得分:0)

        MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
        if([MFMessageComposeViewController canSendText]){
            controller.body = @"MessageText!!!";
            controller.recipients = [NSArray arrayWithObjects:@"123"];
            controller.messageComposeDelegate = self;
            controller.wantsFullScreenLayout = YES;
            [self presentModalViewController:controller animated:YES];
        }