メールを送信するためのモーダルビューを開く単純なアプリケーションがあります。 Xcode 4.2とiOS 5を使用し、iOS Simulatorでテストしています。アプリがクラッシュする キャッチされていない例外 'NSInvalidArgumentException'のためアプリを終了します。理由:
'アプリケーションがターゲットにnilモーダルビューコントローラを表示しようとしました。'アプリケーションがメールコンポーザーを開こうとしたときに、ターゲット上にモーダルビューコントローラを表示しようとしました'エラー/クラッシュ
ライン実行:私はオブジェクトのmailComposer」を初期化しているものの
[self presentModalViewController:mailComposer animated:YES];
を。
クラスcom_FirstViewController.m:
#import "com_FirstViewController.h"
...
@implementation com_FirstViewController
....
....
-(void)showEmailComposer {
Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
if (mailClass != nil)
{
if ([mailClass canSendMail]) {
NSLog(@"showEmailComposer: Calling displayComposerSheet");
[self displayComposerSheet];
} else {
NSLog(@"showEmailComposer: Calling launchMailAppOnDevice");
[self launchMailAppOnDevice];
}
}
else {
NSLog(@"showEmailComposer: Calling launchMailAppOnDevice");
[self launchMailAppOnDevice];
}
}
#pragma mark -
#pragma mark Compose Mail
-(void) displayComposerSheet {
mailComposer = [[MFMessageComposeViewController alloc] init];
mailComposer.messageComposeDelegate = self;
// Set the mail title
[mailComposer setTitle:@"Mail Title"];
// Set the recipients
NSArray *toRecipients = [NSArray arrayWithObject:@"[email protected]"];
[mailComposer setRecipients:toRecipients];
// EMail Body
NSString *mailBody = @"This is the mail body";
[mailComposer setBody:mailBody];
NSLog(@"present the modal view ctlr");
[self presentModalViewController:mailComposer animated:YES];
}
...
...
任意のポインタしてください?
ハ、意図されたヤンパー:p – preynolds