2015-09-02 8 views
14

Aplikacja na iOS, nad którą pracuję, wymaga widoku w orientacji poziomej. Do tej pory było to możliwe dzięki metodom shouldAutorotate i supportedInterfaceOrientations, ale na tych metodach nigdy nie strzelano, a orientacja nie była zablokowana.Nie można zablokować orientacji na iPadzie Air 2

Próbowałem na następujących urządzeń, metod opalane na wszystko z wyjątkiem Air2 (debug działa z Xcode beta6): iPhone 6+, iPad mini, iPad Air 2, iPad 2, iPad 3

metod nie wypalania są następujące:

- (BOOL)shouldAutorotate { 
    return YES; 
} 

- (UIInterfaceOrientationMask)supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskLandscape; 
} 

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { 
    return UIInterfaceOrientationMaskLandscapeRight; 
} 

Zobacz kontroler jest wyświetlany poprzez presentViewController

Odpowiedz

22

Wielozadaniowość można wyłączyć dodając pole UIRequiresFullScreen do Info.plist aplikacji z wartością logiczną YES, a to pozwoli metody orientacji delegat shouldAutorotate, preferredInterfaceOrientation i supportedInterfaceOrientations na ogień.

Jeśli chodzi o orientację blokowania i wspieranie wielozadaniowości, nie znalazłem sposobu, aby to zrobić.

+1

Koleś jesteś ... tylko ... dziękuję! – Soberman

0

mam na myśli to Collateral Damage z funkcją wielozadaniowej. Nie będziesz już w stanie zakładać, że jesteś właścicielem całego ekranu. Mogą istnieć inne metody wywoływania, aby uniemożliwić tryb wielozadaniowości.

5

Ustawienie "Wymaga pełnego ekranu" można włączyć z "Ogólne" ustawień docelowych.

Requires full screen

Mając to włączone, kod orientacja będzie teraz działać. Jak wspomniano przez ackerman91, można również ustawić wartość logiczną UIRequiresFullScreen na YES w pliku info.plist aplikacji lub w docelowej zakładce "Informacje".