Почему мое представление Mail Composer не отображается должным образом?

Если я представлю компоновщик почты модально, он отлично работает (здесь MFMailComposeViewController* _mailer);

[self presentModalViewController:_mailer animated:YES];

Однако, если я добавлю представление к текущему представлению,

[self.view addSubview: _mailer.view];

представление композитора не доходит до верхней части окна. Между верхней частью представления MFMailComposer и строкой состояния есть промежуток в пару строк.

Причина, по которой я хочу добавить представление вместо модального представления, заключается в том, что я использую панель вкладок и не хочу, чтобы она была скрыта. [Вы можете спросить себя, почему он просто не прикрепляет окно композитора непосредственно к панели вкладок? Причина в том, что MFMailComposer является частью рабочего процесса, запускаемого с вкладки, но не запускается с представлением композитора].

В документации Apple говорится:

Чтобы отобразить представление, управляемое этим контроллером представления, вы можете использовать любой из стандартных методов отображения контроллеров представления".

У кого-нибудь есть идея, почему пробел вверху или как заставить композитора почты играть хорошо?


person carmanahip    schedule 26.03.2011    source источник
comment
Если у вас есть рабочий процесс на панели вкладок, рассматривали ли вы возможность использования UINavigationController вместо простого добавления представления вручную?   -  person jtbandes    schedule 26.03.2011


Ответы (1)


Попробуйте установить фрейм _mailer.view равным границам self.view. Я предполагаю, что его рамка по умолчанию пытается компенсировать то, что строка состояния находится вверху. (я предполагаю, что источник представления по умолчанию равен 20 вместо 0)

person drewag    schedule 26.03.2011
comment
Спасибо за ответ. Как ни странно, это ничего не изменило! Я думаю, вы правы в том, что компоновщик почты оставляет место для чего-то наверху, для чего ему не нужно оставлять место. Единственное, что сработало (но не при всех условиях), — это вычесть 20 из координаты y кадра. Лично я считаю, что это баг. Я решил не бороться с этим. Модальное представление — единственное, что работает должным образом, поэтому я намерен работать с тем, что работает. Еще раз спасибо, Пол - person carmanahip; 28.03.2011