Objetivo c - modo de orientação UIActivityViewController
Meu aplicativo para iPhone é projetado para oferecer suporte apenas a orientação retrato, exceto um controlador de exibição que apresenta fotos e também suporta o modo paisagem.
Portanto, no geral, meu projeto suporta todas as orientações, mas cada controlador de visualização (exceto o controlador de visualização de fotos) implementa o método:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
O problema:
Em um dos meus (apenas retrato) controlador de visualização, estou usandoUIActivityViewController
para permitir que o usuário escolha compartilhar conteúdo por email ou SMS.
Quando o usuário escolhe a opção de email, ele mostra automaticamente o controlador nativo de visualização de email ios.
Se o usuário agora alterar a orientação do dispositivo para paisagem, o controlador de visualização de e-mail também mudará para paisagem, agora se o usuário tocar no botão cancelar / enviar, o controlador de e-mail for descartado e agora meu aplicativo está na paisagem!
Existe uma maneira de forçar o controlador de visualização eamil a estar apenas no modo retrato?
Eu sei que posso criar meu próprio controlador e subclasse de visualização de emailUIActivity
para mostrá-lo, mas que oUIActivityViewController
não mostrará o ícone de e-mail padrão quando apresentado, e eu realmente gosto que ele mostre e não algum outro ícone (deve ser cinza) que eu vou fornecer.