草庐IT

objective-c - MFMessageComposeViewController 未正确显示

coder 2024-01-15 原文

我正在使用 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];

}

问题是当显示 composer 时,导航栏位于顶部 y = 0,但在该栏和 View 的其余导出之间出现与状态栏大小相同的空白空间。状态栏显示在此屏幕中(第二期),但与 Composer View 的导航栏重叠。

在其他不隐藏状态栏的项目中,这很有用。但这是第一个在没有状态栏的情况下使用它的项目,而且这种情况正在发生。

有人知道怎么解决吗?

谢谢。

最佳答案

在模态显示消息 Controller 后隐藏状态栏。像这样:

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

关于objective-c - MFMessageComposeViewController 未正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9927337/

有关objective-c - MFMessageComposeViewController 未正确显示的更多相关文章

随机推荐