MFMailComposeViewController навигационна лента

Приложението ми има персонализиран фон за лентата за навигация. Така че направих категория като тази

@implementation UINavigationBar (CustomImage)
- (void)drawRect:(CGRect)rect 
{
    UIImage *image = [UIImage imageNamed: @"image.png"];
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end

В моето приложение трябва да използвам MFMailComposeViewController. Създавам го като

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];

Но документите на Apple посочват това

Важно Самият интерфейс за съставяне на имейл не може да се персонализира и не трябва да се променя от вашето приложение. В допълнение, след представяне на интерфейса, приложението ви няма право да прави допълнителни промени в съдържанието на имейла. Потребителят все още може да редактира съдържанието с помощта на интерфейса, но програмните промени се игнорират. Следователно трябва да зададете стойностите на полетата за съдържание, преди да представите интерфейса.

Така че това означава, че не мога да запазя моя "image.png" като фон на лентата за навигация за контролера за изглед на съставителя на поща.

Как човек може да постигне това?

Благодаря


person user1078065    schedule 28.01.2012    source източник


Отговори (1)


С помощта на стандартния ябълков MFMailComposeViewController не можете, казано по-просто. Обикновено бихте го представили модално, така че така или иначе да надмине изцяло вашия изглед.

Ако искате персонализиран лист за композиране, ще трябва да го създадете като персонализиран контролер с персонализиран изглед. Ще ви е необходим и пощенски сървър, вграден в приложението ви, или сървър, който можете да натиснете, за да изпрати пощата вместо вас.

От съображения за сигурност Apple ограничава това, което можете да правите с MFMailComposeViewController.

Ако мога да бъда полезен повече, питайте :)

person George Green    schedule 28.01.2012
comment
Изображението.png е в навигационната лента на mailComposer. Искам да се отърва от него - person user1078065; 28.01.2012
comment
Съжалявам, може да съм го разбрал погрешно. Значи вече сте го настроили на контролера..? Ако случаят е такъв, тогава да, ще трябва да спрете да го правите, преди да изпратите, тъй като най-вероятно ще бъдете отхвърлени. Въпреки че това, което казах за създаването на персонализиран, все още трябва да е валидно. - person George Green; 28.01.2012
comment
Да, наистина е така. Поглеждайки назад към начина, по който го правите, може да ви се размине. Но от вас зависи да решите дали си струва риска. Съжалявам, че не можах да бъда полезен повече. - person George Green; 28.01.2012
comment
Как да променя категорията само за този екран? - person user1078065; 28.01.2012
comment
Е, не много лесно. Във вашата категория трябва да можете да получите navController за вашия navBar. Ще бъде нещо като self.navigationController. След това трябва да можете да поставите контролера върху стека. След това проверете неговия клас [self.navigationController.topViewController class] == [MFMailComposeViewController class] и ако това е вярно, не задавайте изображението. Не е най-елегантното решение, но трябва да свърши работа. - person George Green; 28.01.2012