からインスタンスエラーに送られます。私はflipsideにこのコードを実装しました。このコードはフィードバックビューを呼び出して、tutorialのような電子メールを送信します。これは動作しますが、私は送信フィードバックUIButtonをクリックしたときに、私のアプリはすぐに*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController sendMail]: unrecognized selector sent to instance 0x89c1960'.
認識されないセレクターはIユーティリティアプリケーションを持っているユーティリティアプリケーションナビゲーションコントローラビュー
でクラッシュし、私はこれらの事をチェックしました:
私は適切にデリゲートを宣言したとMailComposerのためにそれを実装しました。
私の方法、Sendmailは、ボタンのTouchUpのイベントに配線されています。
私のメソッド名は同意:
- (IBAction)sendMail;
と
- (IBAction)sendMail
{
if ([MFMailComposeViewController canSendMail])
{
MFMailComposeViewController *mfViewController = [[MFMailComposeViewController alloc] init];
mfViewController.mailComposeDelegate = self;
[self presentModalViewController:mfViewController animated:YES];
}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Status:" message:@"Your phone is not currently configured to send mail." delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil];
[alert show];
}
}
を私はの先頭に設定されたブレークポイントを持っているので、コードはイベントがこのメソッドに取得していませんメソッドの実装は呼び出されません。 ViewDidLoadのブレークポイントもアクティブになりませんでした。
密接にこのエラーを見て:
reason: '-[UIViewController sendMail]: unrecognized selector sent to instance
をSENDMAILという名前のビューコントローラではなく、メソッドを期待しているようです。私はこれと同じように見えるpostを読んでいますが、xib Identityドロップダウンリストの他のView Controller名は表示されません。私はこれが私の問題の一部だと思うが、私はそれをどのように修正するか分からない。
は、たぶん私はViewControllerを経由してMFMailComposerを提示することになっていますか?もしそうなら、私はそれをどうやって行うのか分からない。
何か提案がありがとうございます。
はい、私はすべてを設定するためにIBを使用しています。ビューを強調表示しているときに、[アイデンティティ]タブのカスタムクラスクラスのリストにビューコントローラ名(XMSendMail)が表示されません。そこにリストされているviewcontrollerを取得するために何か他のものがありますか?ところで、新しいファイルを追加してXMSendMailビューコントローラを作成しました。ありがとう – Jazzmine
カスタムクラスの下のClassという名前のフィールドに入力してください。 – Till
それはうまくいかず、ビープ音が鳴り、名前を受け入れませんでした。 viewcontrollerは、これを介してプログラムによって作成されます:UIViewController * controller = [[UIViewController alloc] initWithNibName:@ "ExMobSendFeedback" bundle:nil];だから多分それがクラスリストに表示されない理由です。ただし、ファイル(.h、.m、.xib)は現在存在します。ところで、このことについて私と一緒に働いてくれてありがとう。 controller.title = @ "フィードバック"; [self.navigationController pushViewController:コントローラアニメーション:はい]; – Jazzmine