Как изменить название MFMessageComposeViewController? - PullRequest
0 голосов
/ 24 мая 2011

Я хочу изменить заголовок SMS-контроллера по умолчанию. Как мне это сделать... Попытка всех нормальных вещей не работает. Кто-нибудь знает, как сделать это правильно?

MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease];
if([MFMessageComposeViewController canSendText])
{
    ABMultiValueRef multi = ABRecordCopyValue(currentContact, kABPersonPhoneProperty);

    [controller setBody:[smsTextView text]];
    [controller setRecipients:[NSArray arrayWithObjects:(NSString*)ABMultiValueCopyValueAtIndex(multi, 0), nil]];
    [controller setMessageComposeDelegate:self];
    //Todo: Make the Title Change
    [controller setTitle:@"asd"];  
    [[controller navigationItem] setTitle:@"asd"];

    [self presentModalViewController:controller animated:YES];
}

Ответы [ 3 ]

1 голос
/ 02 декабря 2013

Не удалось изменить заголовок, но если вы хотите скрыть заголовок, вы можете сделать цвет текста прозрачным:

NSDictionary *attributes =  [NSDictionary dictionaryWithObjectsAndKeys:[UIColor clearColor],UITextAttributeTextColor, nil];
self.messageComposeVc.navigationBar.titleTextAttributes = attributes;

Источник: Можем ли мы изменить навигацию MFmessagecomposeViewcontrollerшрифт заголовка

0 голосов
/ 17 декабря 2012

Да, вы можете.Поскольку MFMessageComposeViewController наследуется от UINavigationController, у него также есть свойство "navigationBar", которое принадлежит классу "UINavigationBar", а в классе "UINavigationBar" есть свойство "topItem", класс которого "UINavigationItem".«TopItem» - это текущий отображаемый элемент в UINavigationController.Таким образом, вы можете выполнить некоторые пользовательские операции над «topItem», например изменить «title», «leftBarButtonItem», «rightBarButtonItem» и так далее.В коде ниже:

// set the SMS navigationBar backgroundColor
controller.navigationBar.tintColor = [UIColor redColor];
// set its title
controller.navigationBar.topItem.title = @"your new SMS title" ;
// set the Right Cancel Item's title
controller.navigationBar.topItem.rightBarButtonItem.title = @"your SMS cancel title";

Связи Apple Doc Referece

UINavigationController

UINavigationBar

UINavigationItem

Да поможет ли это!Вы можете попробовать!

0 голосов
/ 25 мая 2011

Не думаю, что вы можете изменить заголовок экземпляра MFMailComposeViewController. (Я сам прошел через это.) К сожалению, тема становится названием, и это делает сам класс. Кажется, нет и способа победить это.

Обход подпредставлений для поиска элементов навигации может работать, но вы не можете быть уверены, что иерархия реализации и подпредставления MFMailComposeViewController не изменится в будущих выпусках iOS. Таким образом, вы рискуете сломать приложение, если решите пройти по дереву. И даже в этом случае вы не сможете повлиять на заголовок (если, скажем, свойство доступно только для чтения).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...