2015-12-31 3 views
1

Как мы можем установить один конкретный контроллер просмотра в ландшафтном режиме в swift с помощью xib?Установите один конкретный просмотр в ландшафтном режиме в swift

func supportedInterfaceOrientations() -> UIInterfaceOrientationMask { 
     let orientation: UIInterfaceOrientationMask = 
     [UIInterfaceOrientationMask.Portrait, UIInterfaceOrientationMask.PortraitUpsideDown] 
     return orientation 
} 

Я использую приведенный выше код, но это не похоже на работу ..

ответ

0

Я уверен, что вы не можете быть, специфичны для каждого контроллера представления с помощью раскадровки. Если вы делаете это в коде как есть, вам нужно указать ключевое слово переопределения для этой функции. Вам также необходимо убедиться, что ваш проект приложения поддерживает все ориентации интерфейса, которые вы хотите поддерживать для любого конкретного контроллера.

0

Вы должны проверить ориентацию устройства в вашей цели proyect devide orientation

, а затем во всех viewControllers в портрете добавить

override func shouldAutorotate() -> Bool { 
    if (UIDevice.currentDevice().orientation == UIDeviceOrientation.Portrait || 
     UIDevice.currentDevice().orientation == UIDeviceOrientation.PortraitUpsideDown || 
     UIDevice.currentDevice().orientation == UIDeviceOrientation.Unknown) { 
      return true; 
    } else { 
     return false; 
    } 
} 

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask { 
    return UIInterfaceOrientationMask.Portrait 
} 

, наконец, в пейзаж viweController вы хотите добавить

override func shouldAutorotate() -> Bool { 
    return true 
} 

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask { 
    return [UIInterfaceOrientationMask.Portrait, UIInterfaceOrientationMask.Landscape, UIInterfaceOrientationMask.LandscapeLeft, UIInterfaceOrientationMask.LandscapeRight, UIInterfaceOrientationMask.PortraitUpsideDown] 
} 
Смежные вопросы