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