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 の質問では、メールを送信したいのにこちらが使われていたので、二重に間違っていたことになる。
関連記事
-
-
[iPhone開発本] オライリー iPhoneアプリケーション開発ガイド 感想その1
面白そうだったので発売日に買ってみた。1995円と安いのもすばらしい。 しかしタイトルは一ひねりした
-
-
[iPhone SDK] Adhoc 配布にようやく成功
iOS SDK Hacksのおかげで、今までずっと失敗していた Adhoc配布に、ようやく成功。
-
-
ITMS-90175 Legacy Language Designator
自分は自作アプリの非常に古いプロジェクトをいまだにメンテすることがあるので、ITMS-90
-
-
Apple Special Event September 2018
今年も新型iPhoneを発表するアップルのスペシャルイベントが2018年9月13日2時AM(12日1
-
-
iPhoneアプリにAboutBoxを実装
iPhoneアプリにAboutBoxを実装するためのメモ。 今回、自分のiPhoneアプリにAbou
-
-
[iPhone SDK] ネットワーク接続中を示すぐるぐるの表示
いつも忘れて検索してしまうので自分のブログにメモ。 iPhoneのインジケーターバー(?)にぐるぐ
-
-
Wi-Fi体重計Withings WS-50 を買ったのでSDKを試してみる
奥さんからの要望でスマホと連携する体重計を検討していたが、いつの間にかWithingsのWS-50が
-
-
[iPhone SDK] Apple Push Notification を利用したアプリをサポートする Easy APNS
以前 apns-php を使ってApple Push Notification を実行する話を書いた
-
-
[iPhone 6 Plus] TUNEWEAR の iPhone 6 Plus 用ケースを買ってみた
iPhone 6 Plus 購入時に、とりあえず購入した Simplism のケースは、すぐ
-
-
[iOS SDK] UIPickerView の文字が表示されない
おんぷちゃん for iPad のiOS7対応をしているときに遭遇した問題。 UIPopove