SMSウィンドウがポップアップすると、再び閉じることができません。キャンセル ボタンは機能せず、送信ボタンは SMS を送信しますが、ウィンドウは閉じません。
ここで同様の質問の多くを調べましたが、それらはすべて messageComposeViewController メソッドを実装するか、messageComposeDelegate を self に設定することを提案していますが、これらの両方を実行しても何もしませんでした。
誰が私が間違っているのか教えてもらえますか?
.h ファイル
#import <MessageUI/MFMessageComposeViewController.h>
#import <MessageUI/MessageUI.h>
@interface ViewController : UIViewController<CLLocationManagerDelegate,MFMessageComposeViewControllerDelegate,UINavigationControllerDelegate>{
CLLocationManager *locationManager;
MKMapView *mapView_;
}
.m ファイル
- (IBAction)SendTextTapped:(id)sender{
MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
if([MFMessageComposeViewController canSendText])
{
controller.body = @"Hello!";
controller.recipients = [NSArray arrayWithObjects:@"123456", nil];
controller.messageComposeDelegate = self;
[self presentViewController:controller animated:YES completion:nil];
}
}
- (void)messageComposeViewController:(MFMessageComposeViewController*) controller didFinishWithResult:(MessageComposeResult)result error:(NSError*)error;
{
NSLog(@"Entered messageComposeController");
switch (result) {
case MessageComposeResultSent: NSLog(@"SENT"); [self dismissViewControllerAnimated:YES completion:nil]; break;
case MessageComposeResultFailed: NSLog(@"FAILED"); [self dismissViewControllerAnimated:YES completion:nil]; break;
case MessageComposeResultCancelled: NSLog(@"CANCELLED"); [self dismissViewControllerAnimated:YES completion:nil]; break;
}
}