2010-11-21 5 views
1

MFMailComposeViewControllerをプッシュしようとすると、ナビゲーションコントローラをプッシュできません。うーん...それについては知らない。MFMailComposeViewControllerは実際にはナビゲーションコントローラですか?

基本的に私のView Controllerはすべて実際にはナビゲーションバーのタイトルビューを自動的に削除するCustomUIViewControllerのサブクラスです(代わりにナビゲーションバーにロゴがあります)。

私のMFMailComposeViewControllerを提示すると、サブクラスのCustomUIViewControllerを作ることができないので、私のMFMailComposeViewControllerをモーダルに提示すると、そこにタイトルが戻されます。

私はMFMailComposeViewControllerからタイトルビューを削除する方法が本当に必要です。

トム

+0

「UINavigationController継承元:のUIViewController:UIResponder:NSObjectの」 - http://developer.apple.com/library/ios/#documentation/ MessageUI/Reference/MFMailComposeViewController_class/ –

+0

笑、ありがとう - それはなぜMFMailComposeViewControllerと呼ばれるのですか? :p –

+0

それはUINavigationController ^^のサブクラスなので、そのように呼び出されます。 – Rengers

答えて

0

いくつかの簡単なオプション:

  • サブクラスすぎMFMailComposeViewController。
  • CustomUIViewControllerをサブクラス化しないでください。 UIViewController(icky)のカテゴリ内のいくつかのメソッドをオーバーライドします。
  • 外観をより細かく制御を取得するにはいいだろうがUINavigationBar
0

おかげでタイトルビューがキャンセルと送信ボタンが含まれて考えると、私はあなたがそれを削除したいと思いますか分かりません。あなたのロゴの代わりに、いくつかのテキストであることをNAVアイテムの中央領域を設定する必要があり

mailController.navigationItem.titleView = myLogo;

でナビゲーションバーの実際のタイトルを変更してみてください可能性があります。

+0

ええ、動作しません。 :/ありがとうございました。 –

+1

おそらく 'mailcontroller.topViewController.navigationItem.titleView = myTitleView;' – Rengers

+0

タイトル表示はおそらく中間のものです。キャンセルボタンと送信ボタンはleftBarButtonItemとrightBarButtonItemです。 –

-1

のカテゴリにタイトルのアイテムを隠す、私はクリーンな方法があるとは思いません。あなたはそれを変更できない場合、私はあなたがそれを隠す必要があると思う:

[[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjects: [NSArray arrayWithObjects:[UIColor clearColor], nil] forKeys:[NSArray arrayWithObjects:UITextAttributeTextColor, nil]]]; 
関連する問題