MFMessageComposeViewController 上的取消按钮不显示
Posted
技术标签:
【中文标题】MFMessageComposeViewController 上的取消按钮不显示【英文标题】:Cancel button on MFMessageComposeViewController does not show up 【发布时间】:2012-09-17 20:53:52 【问题描述】:在我的 iPhone 应用程序中,我刚刚实现了应用内短信功能。短信功能运行良好。但是在打开 MFMessageComposeViewController 后,如果用户想取消发送短信,他们没有选择。剩下的唯一选择是发送一条短信,然后只返回上一个视图。导航栏上应该有一个取消按钮,就像在电子邮件编辑器中一样。以下是我编写的具有应用内短信功能的代码行:
-(void) smsComposer
MFMessageComposeViewController *_smsCompose = [[MFMessageComposeViewController alloc] init];
if ([MFMessageComposeViewController canSendText])
_smsCompose.body = @"SMS BODY";
_smsCompose.messageComposeDelegate = self;
[self presentModalViewController:_smsCompose animated:YES];
我有什么遗漏的吗?
提前致谢, 电脑
【问题讨论】:
【参考方案1】:试试这个....
在.h文件中
#import <MessageUI/MFMessageComposeViewController.h>
和
@interface TestViewController : UIViewController <MFMessageComposeViewControllerDelegate>
然后按钮点击方法
-(void)buttonPressed:(UIButton *)button
[self sendSMS:@"Body of SMS..." recipientList:[NSArray arrayWithObjects:@"+1-111-222-3333", @"111-333-4444", nil]];
MFMessageComposeViewController 创建 SMS 内容和另一种处理用户与 SMS 对话框交互的方法。
-(void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSArray *)recipients
MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease];
if([MFMessageComposeViewController canSendText])
controller.body = bodyOfMessage;
controller.recipients = recipients;
controller.messageComposeDelegate = self;
[self presentModalViewController:controller animated:YES];
和
-(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
[self dismissModalViewControllerAnimated:YES];
if (result == MessageComposeResultCancelled)
NSLog(@"Message cancelled")
else if (result == MessageComposeResultSent)
NSLog(@"Message sent")
else
NSLog(@"Message failed")
请记住:您不能从模拟器中发送 SMS 消息。在设备上测试。
【讨论】:
以上是关于MFMessageComposeViewController 上的取消按钮不显示的主要内容,如果未能解决你的问题,请参考以下文章