iphone MFMessageComposeViewController,状态栏问题
Posted
技术标签:
【中文标题】iphone MFMessageComposeViewController,状态栏问题【英文标题】:iphone MFMessageComposeViewController, status bar problem 【发布时间】:2011-08-23 07:44:02 【问题描述】:我正在使用以下代码来显示应用内短信。我的应用没有状态栏。 (我在纵向视图中使用 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];
这可以很好地显示消息视图控制器。 (但是状态栏又回来了,我没必要显示) 但问题是,当我单击“取消”或“发送”时,返回应用程序后,我在屏幕顶部(状态栏位置)看到空白。并且状态栏是隐藏的。 为什么当我的状态栏在应用程序委托中设置为隐藏时会发生这种情况。显示应用内短信视图后如何消除空白。
【问题讨论】:
【参考方案1】:在模态显示消息控制器后隐藏状态栏。像这样的:
controller.wantsFullScreenLayout = NO;
[self presentModalViewController:controller animated:YES];
[[UIApplication sharedApplication] setStatusBarHidden:YES];
也在这里回答:MFMessageComposeViewController not properly displayed
【讨论】:
【参考方案2】:我找到了答案。我们必须在视图控制器的 viewDidLoad 方法中设置:
self.wantsFullScreenLayout = YES;
【讨论】:
【参考方案3】:问题在于纵向视图。从我所看到的情况来看,如果 MFMessageComposeViewController 以横向加载,则空间不存在。然后,如果方向更改为纵向,则更正布局并且纵向中不存在空间。
注意当在横向时,MFMessageComposeViewController 是通过从左到右滑动来呈现的。我相信呈现视图的方式是解决问题的关键。
【讨论】:
【参考方案4】: 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];
【讨论】:
以上是关于iphone MFMessageComposeViewController,状态栏问题的主要内容,如果未能解决你的问题,请参考以下文章
在 iphone 5 和 iphone 6 中动态设置字体大小