当用户在MFMessageComposeViewController的收件人部分输入名称时,收件人栏会变黑并消失。用户仍然可以发送消息,输入文本并执行所有其他操作,他们只是看不到收件人栏。
我觉得这可能(或可能不是)因为MFMessageComposeViewController的导航栏是自定义的(背景图像和自定义字体)。
1。我的导航栏的自定义外观是为整个应用程序设置的,如何为MFMessageComposeViewController禁用它?
2。这个小故障还有其他原因吗?这是iOS7的错误吗?
答案 0 :(得分:2)
是的,这里的问题是因为我在UINavigationBars上使用UIAppearance代理。
那是什么解决了这个问题?
我没有尝试更改MFMessageComposeViewController,它本身就是一个应用程序,我自定义了自己的应用程序。
我使用[UINavigationBar appearance]
[UINavigationBar appearanceWhenContainedIn:[SomeNavigationController class], nil]
我认为如果你能做到这一点非常简单,因为尝试自定义MFMessageComposeViewController会非常烦人。
以上所有内容均适用于MFMailComposeViewController。
答案 1 :(得分:2)
我遇到了同样的问题,这是我的解决方案 -
在展示你的留言作曲家([self presentViewController:messageComposer animated:YES completion:nil];
)之前
设置
[[UINavigationBar appearance] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
和委托方法
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller
didFinishWithResult:(MessageComposeResult)result {
UIImage *backgroundImage = [UIImage imageNamed:@"Navigation Bar"];
[[UINavigationBar appearance] setBackgroundImage:backgroundImage forBarMetrics:UIBarMetricsDefault];
[self dismissViewControllerAnimated:YES completion:nil];
}
多数人!!