Mi aplicación es la instalación mediante un UINavigationController para todos los de la navegación. Estoy deseando utilizar un modal de transición para presentar una visión específica del controlador de la aplicación. La cosa es que quiero que los nuevos VC incrustado en el interior de la navegación controlador, pero al igual que un punto de vista de las necesidades de uso de un referente de la animación en lugar de pulsar.

Cómo se puede ir sobre la implementación de este modal animación/transición en un único controlador de vista dentro de la UINavigationController?

Tenga en cuenta que después de este modal de animación suceda, habrá botones en esta página que va a comenzar a trabajar en línea con un estándar de UINavigationController empuje de animación.

  • olvidar que hay algo así como modal y hacer un presentModalView. que deben trabajar.
  • En iOS 7 presentModalViewController está en desuso y cuando yo realizo que el método que se necesita que la vista fuera de la UINavigationController.
  • Me refiero a [auto.navigationController presentViewController:yourViewController … ]
  • modal punto de vista es siempre a pantalla completa, sin embargo, usted puede cambiar el presentationstyle.
InformationsquelleAutor BlueBear | 2013-11-21

6 Comentarios

  1. 2

    Con iOS7, esto es posible mediante el uso de la nueva costumbre de la transición de la API. Usted puede encontrar más información aquí: http://www.objc.io/issue-5/view-controller-transitions.html

    Crear una animación controlador (interactivo o de otra manera), y que se apruebe en el método apropiado de la barra de navegación delegado. En la animación de la controladora, de realizar la animación personalizada utilizando UIView animación de la API. En su caso, la animación debe realizar una diapositiva de abajo en lugar de hacia adelante de la animación, y de diapositivas de lugar a la parte inferior de la animación. Si usted apoya la animación interactiva, usted puede incluso controlar la curva de la animación en relación a que el dedo se deslice.

    • ¿Tienes alguna experiencia en el uso de esto personalmente? Tengo curiosidad porque me ayudaría si me dio una idea de cómo el código para esta situación. También esta opción no está disponible para cualquier cosa inferior a iOS 7, ¿correcto?
    • Sí, esta es una nueva API para iOS7. Usted puede encontrar ideas sobre cómo implementar y cómo la nueva transición de la API de obras en general, aquí: github.com/ColinEberhardt/VCTransitionsLibrary Para iOS6, yo diría que un regular empuje la animación puede ser suficiente, donde decididamente no proporcionan la experiencia completa, como se hace en iOS7. En el momento de terminar la aplicación, es probable iOS7 userbase sería en un 85%+ (actualmente se encuentra en su 80%).
    • Muchísimas gracias por eso! Estoy pensando en ir un todo de iOS 7 ruta, pero no estoy completamente seguro. Hace más atractiva cuando la mayoría de la base de usuarios está ya en ella.
    • Depende de cuánto tiempo usted planea en vías de desarrollo y lo que su público objetivo. Es evidente que hay algo atractivo cuando se crea una aplicación que funciona en iOS6 así. Pero usted tiene peso en el agregado de la prueba de tiempo, de trabajo alrededor de la falta de la API, bugs, etc. iOS7 en sí mismo contiene errores, por lo que puede ser un buen bocado para controlar el iOS6 y iOS7. Buena suerte!
    • Mientras estamos hablando acerca de ello, agradecería su opinión. La aplicación que estoy diseño está orientado a estudiantes Universitarios. ¿Crees que sería una buena medida para salir de iOS 7?
    • Creo que su público objetivo se encuentra entre las más probabilidades de actualización. Especialmente, una vez que una fuga de la cárcel es liberado para iOS7/7.1, la tasa de adopción iba a subir mucho más alto. Los estudiantes también son más propensos a actualizar sus dispositivos más a menudo, así que disponer de dispositivos capaces de ejecutar la última versión del sistema operativo.

  2. 4
    ITviewViewController *vc = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"vc"];
    vc.modalPresentationStyle = UIModalPresentationFullScreen;
    vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self presentViewController:vc animated:YES completion:Nil];

    Reemplazar el pseudo código con su controlador de vista de los nombres.

    • Este hizo el trabajo, pero se necesita que recién presentado VC de la UINavigationController. Supongo que lo que estoy preguntando es cómo presentar una visión que se aparte de mi Controlador de Navegación con una animación que se desliza desde la parte inferior de la pantalla a la parte superior, similar a un estándar modal de transición. Necesito el UINavigationBar persistir después de esta animación, así que puedo seguir para insertar nuevas páginas después.
    • UIModalPresentationFullScreen es el valor predeterminado. Esto no va a ayudar. Se trata de la misma cosa como el [auto presentViewController:vc animados:SÍ finalización:Nil];
    • Ayudar a qué? Que es la forma de mostrar un «modal», mediante la configuración de los estilos y presentarlo.
    • Creo que se debe leer la pregunta en primer lugar. Su pregunta no es cómo mostrar modal vista pero cómo mostrar modal vista sin cubrir la barra de navegación.
  3. 1

    Modal de la vista por defecto es la pantalla completa. Usted necesita para cambiar el estilo de presentación para mostrar navigationBar

    EDIT : Esto sólo funciona para el iPad. Para el iPhone se puede utilizar MZformsheet o Kentnguyen para obtener semi comportamiento modal

    MyModalViewController *targetController = [[[MyModalViewController alloc] init] grupo de liberación automática]; 
    
    targetController.modalPresentationStyle = UIModalPresentationFormSheet; 
    
    targetController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; //transición no importa 
    
    [auto presentModalViewController:targetController animados:YES]; 
    
    
    targetController.vista.superview.frame = CGRectMake(0,44/*navegación de altura de la barra*/,alto, ancho);//es importante hacer esto después de 
    //utilizar la pantalla completa de la altura y la anchura de aquí 
    
    targetController.vista.superview.centro = auto.vista.centro; 
    
    • Como se ha mencionado en los comentarios de la pregunta original, presentModalViewController está en desuso.
    • él puede usar las alternativas de la API, pero la lógica es la misma.
    • Él está en desarrollo para el iPhone, estos son el iPad Api. modalPresentationStyle sólo se toma en cuenta (oficialmente) en la presentación de un controlador de vista modal en un iPad.
    • thats a la derecha. No veo que .. gracias !!
  4. 0

    Tal vez algo parecido a esto funcionará para usted (yo es UINavigationController):

    - (void)verticalPushViewController:(UIViewController *)controller
    {
        [UIApplication sharedApplication].keyWindow.backgroundColor = [UIColor colorWithWhite:1 alpha:0.9];
        CATransition* transition = [CATransition animation];
        transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
        transition.duration = 0.3;
        transition.type = kCATransitionMoveIn;
        transition.subtype = kCATransitionFromTop;
        [self.view.layer addAnimation:transition forKey:kCATransition];
        [self pushViewController:controller animated:NO];
    }
    
    - (UIViewController *)verticalPopViewController
    {
        [UIApplication sharedApplication].keyWindow.backgroundColor = [UIColor colorWithWhite:1 alpha:0.9];
        CATransition* transition = [CATransition animation];
        transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
        transition.duration = 0.3;
        transition.type = kCATransitionPush;
        transition.subtype = kCATransitionFromBottom;
        [self.view.layer addAnimation:transition forKey:kCATransition];
        return [self popViewControllerAnimated:NO];
    }
  5. -1

    La forma más sencilla.

    Presentar

    LaunchImageViewController *launchView = [self.storyboard instantiateViewControllerWithIdentifier:@"launchImage"];
    [[UIApplication sharedApplication].keyWindow addSubview:launchView.view];

    A cerrar. Me llama esta dentro presentado(LaunchImageViewController).

    [self.view removeFromSuperview];

Dejar respuesta

Please enter your comment!
Please enter your name here