Автономный UINavigationBar и MFMailComposeViewController - PullRequest
1 голос
/ 01 марта 2012

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

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

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

Спасибо

1 Ответ

2 голосов
/ 11 марта 2012

Я вижу, вы устанавливаете делегата на 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]; 

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

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

...