2016-02-08 17 views
5

ho una sottoclasse UITabBarController e ha il codice qui sotto:supportedInterfaceOrientations non chiamati in iPad

class TabBarController: UITabBarController { 

// MARK: Methods 

override func viewDidLoad() { 

    super.viewDidLoad() 

} 

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask { 

    print(self.selectedIndex) 
    if self.selectedIndex == 1 { 
     return .Portrait 
    } 

    return .All 


    } 

} 

La funzione supportedInterfaceOrientations viene chiamato solo quando eseguo l'applicazione da un iPhone. Se eseguo l'app dal mio iPad mini, non viene chiamata. Qualche idea del motivo di questo comportamento?

risposta

25

È molto strano, ma se deseleziono Upside Down dall'orientamento del dispositivo per iPad viene chiamato supportedInterfaceOrientations.

enter image description here

UPDATE:

Se 'Richiede schermo intero' impostazione da 'generale' è attivare, permetterà ai metodi di orientamento delegato shouldAutorotate, preferredInterfaceOrientation, e supportedInterfaceOrientations al fuoco.

+0

Impostare UIRequiresFullScreen su YES significa che l'app non supporta più il multitasking. Questa potrebbe non essere una buona idea a seconda del tuo caso d'uso. Vedi https://developer.apple.com/library/content/documentation/WindowsViews/Conceptual/AdoptingMultitaskingOniPad/QuickStartForSlideOverAndSplitView.html#//apple_ref/doc/uid/TP40015145-CH13-SW1 – Klaas