ios - lenguaje - swift apple download
la orientaciĆ³n de bloqueo no funciona en ipad ios 8 swift xcode 6.2 (4)
Bloqueé la orientación de la aplicación al retrato de la configuración general de la aplicación como esta
¿Pero aún cuando ejecuto mi aplicación en ipad, gira?
Entonces, ¿dónde debo bloquear la orientación?
¿Por qué Apple agregó esta función a la configuración, mientras no está funcionando?
ACTUALIZAR:
Intenté implementar este viewController como el general para todo el viewController también.
import Foundation
import UIKit
class GeneralViewController: UIViewController {
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
let value = UIInterfaceOrientation.Portrait.rawValue
UIDevice.currentDevice().setValue(value, forKey: "orientation")
}
override func supportedInterfaceOrientations() -> Int {
return Int(UIInterfaceOrientationMask.Portrait.rawValue)
}
override func preferredInterfaceOrientationForPresentation() -> UIInterfaceOrientation {
return UIInterfaceOrientation.Portrait
}
override func shouldAutorotate() -> Bool {
return false
}
}
Esta foto tomada desde el principal control de navegación de mi aplicación.
Todavía no funcionó!
¿Cómo diablos funciona esto?
Este sería un comentario agregado a la solución de Mohammed Elrashidy, pero no tengo la reputación de hacer comentarios. Estoy usando XCode 9.1 y Swift 3.
Mi aplicación requiere algunas pantallas gráficas para autorotarse pero todas las demás pantallas permanecen fijas. Mi problema fue que la configuración del dispositivo "iPad" en General> Información de implementación se configuró de manera inconsistente con el iPhone y los dispositivos universales. Tuve "Portrait", "Landscape Left" y "Landscape Right" verificados para iPhone y Universal, pero todas las orientaciones verificadas para iPad (incluido "Upside Down"). Simplemente desmarcar "Upside Down" hizo que el dispositivo iPad cumpliera con las instrucciones de autorretrato debida y admitida en Interfaz en mi lógica Swift.
Mi Info.plist ahora se ve como la siguiente y puedo activar o desactivar programáticamente la autorrotación para el iPad.
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
No necesita código adicional, estoy trabajando en Xcode 7.0.1, noté que cuando bloqueo la orientación de la pantalla solo en vertical, solo se bloquea en iPhones, para bloquearlo también en iPads, debe seleccionar iPad desde Dispositivos (en lugar de Universal), marque vertical y desmarque los demás y luego devuelva los Dispositivos a Universal, ya que descubrí que Universal solo se refleja en iPhones, tal vez algún tipo de error en Xcode.
Puede anular su propiedad de controlador de vista shouldAutorotate
override var shouldAutorotate: Bool {
return false
}
Si su controlador de vista está integrado en un controlador de navegación, puede crear un controlador de navegación personalizado:
class PortraitNavigationController: UINavigationController {
override var shouldAutorotate: Bool {
return false
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
*/
}
Yo también tuve el mismo problema. Lo que funcionó para mí fue -> Seleccione iPad en lugar de Universal en Tipo de dispositivo -> Desmarque las otras tres opciones, excepto Retrato -> Seleccione Universal de nuevo. Hecho.