iphone MFMessageComposeViewController, проблема в строке состояния - PullRequest
1 голос
/ 23 августа 2011

Я использую следующий код для отображения смс в приложении. У моего приложения нет строки состояния. (Я использую экран 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];
    }

Это хорошо работает для отображения контроллера просмотра сообщений. (Но строка состояния возвращается, что мне не нужно показывать) Но проблема в том, что когда я нажимаю «Отмена» или «Отправить», после возврата в приложение я вижу пустое пространство вверху (в позиции строки состояния) экрана. И строка состояния скрыта. Почему это происходит, когда моя строка состояния установлена ​​как скрытая в приложении-делегате. Как избавиться от пробелов после показа смс в приложении.

Ответы [ 4 ]

7 голосов
/ 28 мая 2012

Скрыть строку состояния после того, как вы модально представили сообщение контроллеру. Примерно так:

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

Также ответили здесь: MFMessageComposeViewController не отображается должным образом

2 голосов
/ 23 августа 2011

Я нашел ответ.Мы должны установить в метод view контроллера ViewDidLoad:

self.wantsFullScreenLayout = YES;
0 голосов
/ 24 мая 2012
        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];
        }
0 голосов
/ 01 апреля 2012

Проблема в портретной ориентации.Из того, что я вижу, если MFMessageComposeViewController загружает в ландшафте пространство не там.Затем, если ориентация меняется на портретную, макет исправляется, а пространство не отображается в портретной.

Примечание. В альбомной ориентации MFMessageComposeViewController отображается путем скольжения слева направо.Я считаю, что способ представления представления является ключом к решению проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...