Quiero crear una vista modal con el elemento de navegación (vista derecha en mi captura de pantalla) y quiero que tenga un "botón Atrás". Mi aplicación es la aplicación TabBar y no quiero que esta vista tenga una barra de pestañas, pero quiero cargar una vista previa (vista izquierda en mi captura de pantalla) con un segue similar al tipo "presionar". Solo puedo crear una transición de inserción para proporcionar una navegación hacia la derecha de la vista de la izquierda; si está cargada como una vista modal, la Barra de navegación & TabBar ya no está. ¿Alguna solución para esto? ¡Gracias de antemano!Crear una vista modal con la barra de navegación y el botón Atrás
Respuesta
Simplemente ponga una barra de navegación en la nueva vista con un elemento de botón de barra. Cree una acción para el elemento del botón de barra arrastrando el control del elemento del botón de barra al .h del controlador de vista. A continuación, puede utilizar un método delegado y el protocolo para decirle al primer controlador cuando el botón ha sido presionado y tiene que utilizar [self dismissModalViewControllerAnimated:YES];
Así que en su segundo punto de vista de crear un protocolo con un método de hecho, como este:
@protocol SecondViewControllerDelegate <NSObject>
-(void) done;
@end
@interface SecondViewController : UIViewController {
...
id delegate;
}
...
@property (nonatomic, assign) id<SecondViewControllerDelegate> delegate;
-(IBAction)done:(id)sender; //this will be linked to your nav bar button.
@end
entonces en su acción desde el botón de llamada esto:
-(IBAction)done:(id)sender{
[self.delegate done];
}
su primer controlador de vista necesitarán para implementar el protocolo <SecondViewControllerDelegate>
luego en su primer controlador de vista, configúrelo como un delegado para su segundo controlador de vista antes de realizar la transición.
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([[segue identifier] isEqualToString:@"Second View Modal Segue Identifier"])
{
SecondViewController *viewController = segue.destinationViewController;
viewController.delegate = self;
}
}
por último, coger la llamada hecha por el delegado en su primer controlador de vista:
-(void) done
{
[self dismissModalViewControllerAnimated:YES];
}
Así es como yo lo he hecho. Si no tienes mucha experiencia con protocolos y delegados, puede parecer confuso al principio, pero me ha funcionado bien.
discúlpeme si hay algún error tipográfico, lo escribí todo desde el principio. –
Tendrá que envuelva a su controlador de vista lado derecho en un nuevo controlador de navegación. En IB, selecciónelo y elija la opción de menú Editor -> Embed In -> Navigation Controller
e IB mostrará una barra de navegación que puede personalizar al contenido de su corazón.
¿Esto me permite presentarlo como una vista modal? –
Sí, de hecho. En el iPad puede tener esta es la vista más pequeña y centralizada. Tienes que implementar tus propios botones en la barra de navegación para descartarlos. – Mundi
Gracias. En iOS 7, si solo arrastro la barra de navegación, se verá mal, ya que el fondo de la "barra de tiempo", a diferencia de la barra de navegación, no tiene fondo gris. Pero este método resolvió el problema y parece más elegante. –
- 1. Agregar el botón Atrás a la barra de navegación
- 2. Vista modal con el Controlador de navegación
- 3. vista modal en ocasiones oculta la barra de navegación
- 4. iPhone: botón "atrás" de la barra de navegación clicable = ¿NO?
- 5. iPhone: mostrar modal UITableViewController con la barra de navegación
- 6. Barra de navegación Botón Atrás, texto no centrado aliginado
- 7. ¿Evitar la animación al hacer clic en el botón "Atrás" en la barra de navegación?
- 8. Botón de retroceso personalizado en la barra de navegación
- 9. Cómo agregar el botón de barra en la barra de navegación sin controlador de navegación.
- 10. IOS 5 ¿Cómo cambiar el color del botón Atrás en una barra de navegación?
- 11. Ocultar el título de la barra de navegación sin quitarlo
- 12. El botón de navegación hacia atrás no se muestra, cómo agregar el botón Atrás a UINavigationItem
- 13. Cómo deshabilitar el botón derecho de la barra de navegación
- 14. ¿Cómo se distingue el botón de navegación hacia atrás/adelante?
- 15. Vista web de Android con el botón Atrás, si no
- 16. Cómo puedo mostrar una imagen personalizada en el botón de barra de navegación en lugar de los botones predeterminados que se muestran en la barra de navegación
- 17. botón de la barra de pestañas ios a la vista modal
- 18. iOS cómo quitar el botón Atrás?
- 19. JSF commandLink, POSTing y el botón Atrás
- 20. Desactivar/Activar el botón Atrás de la vista de detalles
- 21. Ocultar o desactivar el botón Atrás en la vista final de la aplicación basada en el controlador de navegación
- 22. ios barra de navegación botón derecho elemento se desplaza al pulsar nuevo controlador de vista
- 23. ¿Cómo puedo crear una pila de navegación global?
- 24. Botón de navegación hacia atrás que no aparece en Controlador de vista presionada
- 25. MonoTouch.Dialog: elemento posterior en la barra de navegación
- 26. Botón Atrás personalizado en UINavigationController
- 27. Cómo transformar la barra de navegación y el controlador de navegación en modo horizontal
- 28. Cómo ocultar el elemento uibarbutton de una barra de navegación
- 29. ¿Cómo puedo personalizar el color del texto del botón Atrás en una vista de encabezado UINavigationController?
- 30. MSVC 2010 botones de la barra de herramientas de navegación hacia atrás y hacia adelante
¿Qué tiene de malo presentar una vista modal (a la derecha) y tener un botón Atrás para cerrarla y volver al UITableView que se muestra a la izquierda? – tarheel
Porque es un UIWebView con contenido dinámico y quiero que el botón Atrás esté en la barra de navegación –