1

私はこのコードを使用してクラッシュしています

ナビゲーション コントローラーのプッシュはサポートされていません

 MFMessageComposeViewController *messageController = [[MFMessageComposeViewController alloc] init];
    messageController.messageComposeDelegate = self;
    [messageController setRecipients:recipents];
    [messageController setBody:message];
    [self.parentViewController presentViewController:messageController animated:YES completion:nil];
4

4 に答える 4

4
[self presentViewController:messageController animated:YES completion:nil];
于 2014-07-03T12:51:40.327 に答える
1

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];
}
于 2014-07-03T11:55:15.497 に答える
1

あなたのビューは NavigationController Stack にありますか? これを試して-

[self.navigationController presentViewController:messageController animated:YES completion:nil];
于 2014-07-03T11:18:23.510 に答える