storyboard
またはを使用している場合は.xib
、以下のコードが役立ちます。
追加MessageUI.framework
この行をインポート クラスに記述します。
#import <MessageUI/MessageUI.h>
デリゲートを設定
@interface ListViewController : UIViewController <MFMessageComposeViewControllerDelegate, UINavigationControllerDelegate>
次のメソッドを実装します
- (IBAction)sendMessage:(UIButton *)sender
{
if([MFMessageComposeViewController canSendText])
{
MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
controller.body = @"Hello...";
controller.recipients = [NSArray arrayWithObjects:@"recipient1, recipient2, recipient3", nil];
controller.messageComposeDelegate = self;
controller.delegate = self;
[self presentViewController:controller animated:YES completion:nil];
}
}
却下のためのデリゲートメソッドを実装する
#pragma mark - Message Delegate ============================
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
switch (result)
{
case MessageComposeResultCancelled: break;
case MessageComposeResultFailed:
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message:@"Sorry, something went wrong, please try again." delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
}
break;
case MessageComposeResultSent: break;
default: break;
}
[[controller presentingViewController] dismissViewControllerAnimated:YES completion:nil];
}