1

Я использую автономный UINavigationBar с одной кнопкой, которая переключает боковое меню слева. Он работает безупречно.Автономный UINavigationBar и MFMailComposeViewController

Теперь я хотел добавить форму обратной связи по электронной почте, используя MFMailComposeViewController. Он появляется, и я могу редактировать все поля (To, Subject, Body), но когда я хочу «отправить», кнопка не реагирует. Когда я нажимаю «Отмена», я замечаю, что функциональность базовой кнопки UINavigationBar запускается. Кажется, что мой UINavigationBar «выше» NavigationBar диалога электронной почты создает диалог, хотя я вижу только диалог создания электронной почты.

Есть ли способ гарантировать, что MFMailComposeViewController находится поверх всего остального?

Благодаря

+2

Как вы добавляете UINavigationBar и как вы представляете почтовый композитор? – jrturton

+0

Покажите нам код, который вы используете, чтобы представить почтовый композитор ... – fbernardo

+0

Трудно показать код. У меня есть родительское представление, у которого есть subview, в котором загружается представление, которое затем инициирует MFMailComposeViewController. Родительское представление имеет UINavigationBar (перетаскивание на XIB). Код MFMailComposeViewController очень прост и следующий - (IBAction) btnSendEmailPressed: (ID) отправитель { MFMailComposeViewController * контроллер = [[MFMailComposeViewController Alloc] инициализации]; controller.mailComposeDelegate = self; [controller setToRecipients: [NSArray arrayWithObject: @ "MYEMAILADDRESS"]]; – Joseph

ответ

2

Я вижу, вы устанавливаете делегата self, что хорошо, но вы также реализует следующий метод?

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error 
{ 
    [self dismissViewControllerAnimated:YES completion:nil]; 
} 

Я бы предположил, что отмена как-то обрабатывается без отклонения контроллера состава?

Я хотел бы также попробуйте изменить следующую строку:

[self presentModalViewController:controller animated:YES]; 

к этому:

[self.navigationController presentModalViewController:controller animated:YES]; 

Если вы используете панель навигации, как вы сказали, то попытайтесь представлением от вашего зрения диспетчерского nab.

Это может быть что-то странное, как странное взаимодействие с wantsFullscreenLayout вашего контроллера. Дважды проверьте все свои соединения с пинками, и если он все еще не работает, попробуйте нажать еще один контрольный контроллер. Это может быть что-то с вашим кодом или наконечником, а не с самим MFMailComposeViewController.

Смежные вопросы