Application tried to present a nil modal view controller on target 問題
MFMailComposeViewController を使ってメール送信ダイアログを表示しようとしたところ、Application tried to present a nil modal view controller on target が発生してアプリが強制終了されてしまう問題に遭遇。
に書いてあるとおり、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]; } }
ちなみに、メールを送信できない環境である場合自動的にダイアログが表示される。
さらにちなみに、SMSを送りたい場合は MFMessageComposeViewController を使い、その場合送信可能かどうかは canSendText を使うとのこと。
上記のStack Overflow の質問では、メールを送信したいのにこちらが使われていたので、二重に間違っていたことになる。
関連記事
-
TestFlight を使ったベータテストについて
アプリのベータテストにご協力いただきありがとうございます。ベータテストには、AppleのTestFl
-
Pebble E-Paper Watch のお届け先住所入力ページが用意された
4月にKickstarterで出資した、Pebble E-Paper Watch を作ってい
-
iPhone/iPad で教育
この本は面白そう。今後は教育分野での応用も増えていくだろう。 その時に、iPhone/iPad は教
-
コードちゃん 1.2.1 をリリースしました
3年以上アップデートしていなかった、コードちゃん をアップデートしました。 Cmb5
-
iPhone 3G 購入
ついにiPhone 3G 購入。とは言っても自分ではなく奥さん用。 そのうちiPhone 3G 初
-
Photoshop のバッチ処理でiOSアプリアイコンを一括作成する
毎回苦労しているiOSのアプリアイコン作成。今回はPhotoshopのバッチで作成してみる。前回は
-
[iPhone開発本] オライリー iPhoneアプリケーション開発ガイド 感想その1
面白そうだったので発売日に買ってみた。1995円と安いのもすばらしい。 しかしタイトルは一ひねりした
-
iPhone開発のネタ帳: コールアウト代用部品を作る
Map Kit を使うと、地図上に吹き出しのようなものを表示できる。この吹き出しのようなものをコ
-
新しい iPad の感想
昨日2012/03/16(金)は新しいiPadの発売日。 早速買って会社に持ってきた人がいたので、手
-
Reject 履歴 おんぷちゃん 1.9.0
久しぶりに おんぷちゃん をアップデートしようとしたところ、"Guideline 2.3.7 - P