Cel c - tryb orientacji UIActivityViewController
Moja aplikacja na iPhone'a obsługuje tylko orientację pionową, z wyjątkiem jednego kontrolera widoku, który prezentuje zdjęcia, a także obsługuje tryb poziomy.
Tak więc ogólnie mój projekt obsługuje wszystkie orientacje, ale każdy kontroler widoku (z wyjątkiem kontrolera widoku zdjęć) implementuje metodę:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
Problem:
W jednym z moich (tylko portretowych) kontrolerów widoku używamUIActivityViewController
aby pozwolić użytkownikowi wybrać udostępnianie treści za pośrednictwem wiadomości e-mail lub SMS.
Gdy użytkownik wybierze opcję e-mail, automatycznie wyświetli kontroler natywnego widoku e-mail ios.
Jeśli użytkownik zmieni teraz orientację urządzenia na poziomą, kontroler widoku wiadomości e-mail również zmieni się na krajobraz, a teraz, jeśli użytkownik dotknie przycisku anuluj / wyślij, kontroler poczty zostanie zwolniony, a teraz moja cała aplikacja znajduje się w krajobrazie!
Czy istnieje sposób, aby zmusić kontroler widoku eamil do działania tylko w trybie portretowym?
Wiem, że mogę utworzyć własny kontroler i podklasę widoku e-mailUIActivity
pokazać to, ale niżUIActivityViewController
nie pokaże domyślnej ikony wiadomości e-mail, gdy jest prezentowana, i naprawdę podoba mi się jej wyświetlanie, a nie inna (musi być szara) ikona, którą udostępnię.