2010-11-21 4 views
1

Когда я пытаюсь нажать мой MFMailComposeViewController, он говорит, что я не могу нажимать навигационные контроллеры ?! Хм ... не знаю об этом.MFMailComposeViewController - это контроллер навигации?

В основном все мои контроллеры представлений фактически являются подклассами CustomUIViewController, которые автоматически удаляют вид заголовка из панели навигации (поскольку вместо этого у меня есть логотип на панели навигации).

Представляя мой MFMailComposeViewController, модально помещает заголовок туда, потому что я не могу сделать его подклассом CustomUIViewController (или я могу? Я не знаю?).

Так что мне действительно нужен способ удалить вид заголовка из MFMailComposeViewController.

Благодаря

Том

+0

«наследуется от UINavigationController: UIViewController: UIResponder: NSObject» - http://developer.apple.com/library/ios/#documentation/ MessageUI/Reference/MFMailComposeViewController_class/ –

+0

lol, спасибо, почему он называется MFMailComposeViewController? : p –

+0

Это называется так, потому что это подкласс UINavigationController ^^. – Rengers

ответ

0

Несколько простых вариантов:

  • Подкласс MFMailComposeViewController тоже.
  • Не подклассы CustomUIViewController; переопределить некоторые методы в категории UIViewController (icky).
  • Скрыть название пункта в категории UINavigationBar
0

Учитывается вид заголовка содержит кнопки Отмена и отправить, я не уверен, что вы хотите, чтобы удалить его. Вы можете попробовать изменить фактическое название в панели навигации с

mailController.navigationItem.titleView = myLogo;

Что следует установить, что центральную зону пункта нав быть ваш логотип, а не какой-нибудь текст.

+0

hmm, не работает. :/спасибо за вашу помощь, хотя –

+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]]]; 
Смежные вопросы