В раскадровке я могу настроить переход от кнопки к UIViewController и сделать его модальным. Это прекрасно работает. Однако, когда я меняю класс в раскадровке с UIViewController на MFMailComposeViewController, он вообще не работает. Все, что появляется, — это панель навигации вверху, а остальная часть дисплея заполнена черным цветом. Я использую неправильный подход?
Использование MFMailComposeViewController в раскадровке не работает
Ответы (2)
У меня была аналогичная проблема с ABPeoplePickerNavigationController, и я тоже не мог понять, в чем проблема. Вы также можете
Вернитесь к
IBActionи создайте экземплярMFMailComposeViewControllerсамостоятельно и отобразите его.Если вы хотите продолжать использовать раскадровки, что я считаю желательным, вы можете создать класс-оболочку, который внутренне создает экземпляр
MFMailComposeViewController, а затем функционирует как прокси-объект и, таким образом, распространяет методыviewDid***иviewWill***в обернутый класс, а также возвращает обернутый Представление VC в свойствеviewтолько для чтения... Вы поняли идею.
В дополнение к ответу Беси:
- Подкласс
MFMailComposeViewControllerи переопределение методаinitWithCoder:.
Пример:
-(id)initWithCoder:(NSCoder *)aDecoder
{
return [super init];
}
Тогда он будет работать с раскадровками, но я думаю, что ваши выходы/теги/другие определения из сцены раскадровки не будут применяться (вам нужно настроить композитор почты внутри вашего метода prepareForSegue:sender:).