導(dǎo)入頭文件
頭文件:#import <MessageUI/MessageUI.h>
遵循代理:<MFMessageComposeViewControllerDelegate>
跳轉(zhuǎn)代碼實(shí)現(xiàn)
//是否可以發(fā)送文本消息(模擬器不可以)
if ([MFMessageComposeViewController canSendText]) {
MFMessageComposeViewController *vc = [[MFMessageComposeViewController alloc]init];
vc.recipients = @[phoneNum];//短信接收者---是個(gè)數(shù)組
vc.body = @"";//短信內(nèi)容
vc.messageComposeDelegate = self;
[self presentViewController:vc animated:YES completion:nil];
}else {
NSLog(@"設(shè)備不支持發(fā)送短信");
}
代理方法實(shí)現(xiàn)
#pragma mark- ====== MFMessageComposeViewControllerDelegate =======
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
//發(fā)送完信息就回到程序
[self dismissViewControllerAnimated:YES completion:nil];
switch (result) {
case MessageComposeResultSent:
[HUD showHUDMessage:@"發(fā)送成功"];
break;
case MessageComposeResultFailed:
[HUD showHUDMessage:@"發(fā)送失敗"];
break;
case MessageComposeResultCancelled:
[HUD showHUDMessage:@"取消發(fā)送"];
break;
default:
break;
}
}
在 demo 中這樣寫,是可以姻锁,但是放到有些項(xiàng)目中短信界面的導(dǎo)航欄一片空白翩肌,沒有取消按鈕蝇完,無法返回自己的應(yīng)用工窍,出現(xiàn)這種情況看看自己的項(xiàng)目中是不是用了UINavigationController+FDFullscreenPopGesture這個(gè)第三方全屏滑動(dòng)返回魄鸦,如果用了的話在下面這個(gè)方法中添加一段代碼:
- (void)fd_pushViewController:(UIViewController *)viewController animated:(BOOL)animated
就像這樣子密强,到這里已經(jīng)大功告成
- (void)fd_pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
if ([self isKindOfClass:NSClassFromString(@"MFMessageComposeViewController")]) {
[self fd_pushViewController:viewController animated:animated];
return;
}
}