Así, quiero bloquear la orientación de mi página de inicio en vertical, y la página principal.

Estoy usando una barra de pestaña controlador, por lo que la vista inicial está en la pestaña controlador, pero la vista controlador que aparece en primer lugar es la primera ficha, por ejemplo, la página de Inicio.

Me gustaría hacerlo de modo que cuando el usuario va a girar el dispositivo, que NO VA a girar en el paisaje en esta página. Sin embargo, todas las otras páginas que pueden girar.

He buscado de todo y nada parece ser específica de iOS 7, y la que es específico para iOS 7 no funciona…

Por favor ayuda, gracias!

La imagen a continuación se describe lo que yo DON»T quiere que suceda, para esta página.

Bloqueo de la Orientación Vertical en la Vista? iOS 7

stackoverflow.com/questions/12520030/…
He intentado que no funciona dentro de la página de inicio.m archivo, que es la ÚNICA página quiero bloqueo de la orientación. Gracias.

OriginalEl autor n00bAppDev | 2013-11-07

4 Comentarios

  1. 7

    Implementar las siguientes acciones en su implementación

    - (NSUInteger) supportedInterfaceOrientations {
    
        return UIInterfaceOrientationMaskPortrait;
    
    }

    Esto debe darle los resultados que usted está buscando!

    ¿Qué significa para ti la aplicación? El controlador de vista de la página que desea bloquear? Gracias.
    Sí, la .m archivo para el controlador de vista de que están trabajando en
    Ver editado respuesta, tuve Paisaje en lugar de vertical
    Solo funciona cuando lo pongo en el .m archivo de la TabController, que a su vez restringe cada una de las páginas de rotación. Cuando me lo puse en mi página de inicio.m archivo, no hacer nada.

    OriginalEl autor vzm

  2. 6

    Utilizar este código

    @implementation UINavigationController (Rotation_IOS6)
    
    -(BOOL)shouldAutorotate
    {
    
        return UIInterfaceOrientationMaskPortrait;
    
    }
    
    -(NSUInteger)supportedInterfaceOrientations
    {
    
      return UIInterfaceOrientationMaskPortrait;
    
    }
    
    - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
    {
    
     return UIInterfaceOrientationPortrait;
    
    }
    
    @end
    Este código no funciona cuando se me pega en mi página de inicio.m controlador de vista de archivo. Sólo funciona cuando me pegue en la TabController.m que controla todas las páginas, lo que significa que CADA página está bloqueada para retrato, que no es lo que quiero. Parece ser un problema con la ficha controlador.
    No tiene sentido volver UIInterfaceOrientationMaskPortrait en -(BOOL)shouldAutorotate.
    shouldAutorotate debe devolver YES.

    OriginalEl autor yen

  3. 0

    El problema es, como han señalado acertadamente, que la ficha de inicio no es el primer controlador de vista.

    Desde mi limitado conocimiento sobre el tema, sólo puedo pensar en lo siguiente:

    1. Crear otra vista de la pestaña controlador y aplicar los métodos para el control de la orientación, es decir, shouldAutorotate y supportedInterfaceOrientations;
    2. Hacer este controlador, el primero al inicio;
    3. Ruta de las otras pestañas de abajo a la ficha original del controlador (el que apoya a todas las orientaciones), utilizando un empuje segue.

    OriginalEl autor Ja͢ck

  4. 0

    Yo creo que he encontrado una buena solución.
    Bueno, en mi caso estoy usando un UISplitViewController como rootController en el guión, pero la idea es la misma.

    1. Subclase su rootController (En mi caso UISplitViewController) y Coger el shouldAutorotate() de devolución de llamada para que puedas llamar subvistas shouldAutorotate a partir de ahí.
    2. Implementar shouldAutorotate() en la Vista que desee Bloquear la Rotación de la

      class MyUISplitViewController: UISplitViewController {
      override func shouldAutorotate() -> Bool {
          if ((self.viewControllers.last) != nil && (self.viewControllers.last!.topViewController) != nil){
              if (self.viewControllers.last!.topViewController!.respondsToSelector("shouldAutorotate"))
              {
                  return self.viewControllers.last!.topViewController!.shouldAutorotate()
              }
          }
          return true
      }
      }

    En el sub UIViewController

    override func shouldAutorotate() -> Bool {
            if (UIDevice.currentDevice().userInterfaceIdiom == .Phone)
            {
                return false
            }else{
                return true
            }
        }

    Si quieres comprobar los soportados orientaciones, usted puede simplemente hacer lo mismo con supportedsupportedInterfaceOrientations()

    EDICIÓN:

    No olvide ajustar su «MyUISplitViewController» clase en el Guión de la raíz viewController

    OriginalEl autor Mikael

Dejar respuesta

Please enter your comment!
Please enter your name here