Application tried to present a nil modal view controller on target 問題

公開日: : iPad, iPhone

MFMailComposeViewController を使ってメール送信ダイアログを表示しようとしたところ、Application tried to present a nil modal view controller on target が発生してアプリが強制終了されてしまう問題に遭遇。

iphone – 'Application tried to present a nil modal view controller on target' error/crash when trying to open mail composer – Stack Overflow

に書いてあるとおり、MFMailComposeViewController の canSendMail を使って、端末からメールを送れる状態であるかを確認する必要がある。
テスト用端末や Simulator だとメールの設定をしていないことも多いと思うので、遭遇することがありそうだ。

 Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
if (mailClass != nil) {
        MFMailComposeViewController * mailView = [[MFMailComposeViewController alloc] init];
        mailView.mailComposeDelegate = self;

        //Set the subject
        [mailView setSubject:emailSubject];

        //Set the mail body
        [mailView setMessageBody:emailBody isHTML:YES];


        //Display Email Composer
     if([mailClass canSendMail]) {
        [self.navControl presentModalViewController:mailView animated:YES];
     }
}

ちなみに、メールを送信できない環境である場合自動的にダイアログが表示される。

Mfmail

さらにちなみに、SMSを送りたい場合は MFMessageComposeViewController を使い、その場合送信可能かどうかは canSendText を使うとのこと。
上記のStack Overflow の質問では、メールを送信したいのにこちらが使われていたので、二重に間違っていたことになる。

関連記事

no image

確かに薄い iPhoneケース eggshell iPhone クリア

試しにiPhoneアプリのwordpressで更新してみる。 とにかく薄いiPhoneケースがほしく

記事を読む

no image

iPad2 を iOS5 にアップデート

iOS5 はまだ不安定な印象があったので、iPod touch 4th に入れただけで様子を見ていた

記事を読む

no image

タッチ! アメリカ地図 1.0.1 アップデート

タッチ! アメリカ地図 のアップデート(バージョン 1.0.1)を8月から5ヶ月ぶりにApp Sto

記事を読む

no image

電子書籍を出してみたよ! を買ってみた。

面白そうだったので買ってみた。電子出版に興味のある出版関係者で集まってKindle Storeで日本

記事を読む

MacPeople 最終号

2014年11月号で休刊。 1995年10月に創刊されたらしい。 最終号はiPhone6/iP

記事を読む

no image

ついにヒレガス本第3版が出るらしい

以前から、いつかは出るかな、いやもういまさらでないかなと思っていたヒレガス本の第3版が11月についに

記事を読む

Clime もうすぐ発送?

自分以外に注目している人を見たことがない Clime だが、メールでせかしていたらもうすぐ発送してく

記事を読む

no image

iPhone SDKでユーザデータをローカルに保存したい

一応5日より次のiPhoneアプリの開発を始めた。 前回のアプリはアプリの設定をちょこっとローカルに

記事を読む

no image

iPhoneアプリをぬるぬるとつくろう。

かごおたさんのこの記事 はポイントが簡易にまとまっていてiPhoneアプリを作り始める際にはよい

記事を読む

iOS デバイスサポート最終バージョン

iOS9からGKSession over Bluetoothが無効に なってしまったので Multi

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

[Xcode] Interface Builder でControl+ドラッグでOutletが作成できない

たまにInterface Builder でUI作っているとはまるの

Ember Mug用のふたを買ってみた

Ember Mug Lid 2022年あけましておめでとうござ

Google Search Console の利用を開始してみた

YouTube DATA API (iOS Quickstart  

Xcode 13.1 アップデート

Apple、統合開発環境「Xcode 13.1」をリリース:Code

watchOS8 アップデート内容

この前購入した Apple Watch SE は watchOS 7

→もっと見る

  • 2013年4月
    1234567
    891011121314
    15161718192021
    22232425262728
    2930  
PAGE TOP ↑