XJo*_*nes 22 mfmessagecomposeviewcontroller ios7
以下代码在iOS 5/6中运行良好.在iOS 7中,它看起来像这样(红色椭圆形用于强调).

码:
if ([MFMessageComposeViewController canSendText]) {
self.messageComposer = [MFMessageComposeViewController new];
self.messageComposer.recipients = @[number];
self.messageComposer.messageComposeDelegate = self;
[self presentViewController:self.messageComposer
animated:YES
completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
问题:这是简单的代码.是否有一些其他外部属性,可能是呈现视图控制器,正在影响这个?任何人都有修复或解决方法?
谢谢.
Gre*_*reg 20
我发现MFMessageComposeViewController的收件人字段似乎从iOS7中的UINavigationBar外观代理中获取了一些外观.为了解决这个问题,我在我的应用程序中完成了以下操作:
通过在IB中的身份检查器上设置自定义类,将此自定义UINavigationController子类用作我想要具有自定义外观的任何导航控制器的标记:

在我的app delegate中,设置导航栏的外观如下:
[[UINavigationBar appearanceWhenContainedIn:[MyCustomNavigationController class], nil] ...];
Run Code Online (Sandbox Code Playgroud)这确保我在想要自定义的控制器中获得我想要的导航栏外观,但保留了其他控制器(如MFMessageComposeViewController)中的标准导航栏(和相关)外观.这是一个截图; 注意MFMessageComposeViewController的标准外观,后台弹出窗口上的自定义导航栏外观:

Bha*_*rat 20
我遇到同样的问题,这是我的解决方案 -
在演示你的消息之前,composer([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];
}
Run Code Online (Sandbox Code Playgroud)
就这样!!
| 归档时间: |
|
| 查看次数: |
5124 次 |
| 最近记录: |