提出MFMessageComposeViewController的图形问题

时间:2014-10-27 15:36:51

标签: ios objective-c xcode mfmessagecomposeview

当我在我的应用中展示MFMessageComposeViewController时,我发现了这个奇怪的问题!

我不知道这个黑条是什么,我无法从NavigationBar中删除应用徽标。

The MessageCompose view controller draws over my nav bar

以下是呈现控制器的代码

MFMessageComposeViewController *messageController = [[MFMessageComposeViewController alloc] init];
[[messageController navigationBar] setBarTintColor:SMAN_ORANGE_COLOR];
[[messageController navigationBar] setTintColor:[UIColor whiteColor]];
messageController.messageComposeDelegate = self;
[messageController setRecipients:recipents];
[messageController setBody:message];

// Present message view controller on screen
[self presentViewController:messageController animated:YES completion:nil];

4 个答案:

答案 0 :(得分:1)

要删除应用徽标,请尝试在上面的代码中添加以下代码:

messageController.navigationItem.titleView = [UIImageView new];

要更改状态栏样式(白色),请在显示 messageController 之前添加以下代码:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];

同样在 .plist 文件集中:

查看基于控制器的状态栏外观

答案 1 :(得分:0)

我解决了我的UINavigationController子类化并用[UINavigationBar appearanceWhenContainedIn:[myNavControllerSubclass class], nil]改变它的外观的问题

答案 2 :(得分:0)

   [self presentViewController:messageController animated:YES completion:^{
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO];
}];

这适用于ios 8中的白色状态栏

也请参阅答案#1。

答案 3 :(得分:-1)

根据Apple's documentation,您只能以模态方式呈现。

[self presentModalViewController:messageController animated:YES];