El efecto de transición entre uno y otro será rotando de manera que parezca que un view está a la espalda del otro.
Creación de
un view Controller principal
1º Selecionamos un proyecto vacío. Este creara
ficheros .h y .m para el Applicattion
Delagate.
2º Añadimos un controlador: New+ File + UIViewController subclass, le ponemos
el nombre (MainViewController) y marcamos que cree el fichero xib.
Una vez creado añadirá un fichero .h y otro .m
para la clase del view controller. Igualmente creará un fichero XIB.
3º En el AppDelegate.h definimos la clase del
view controller creado.
, y una propiedad con la que creamos un
puntero a una instancia del controlador
@class
MainViewController;
@property
(strong, nonatomic) MainViewController *mainViewController;
4º En el AppDelegate.m añadimos:
#import
“MainViewController.h”
@synthesize
mainViewController = _mainViewController;
5º En el AppDelegate.m buscamos el método
didFinishLaunching y añadimos:
self.mainViewController
=[[mainViewController alloc] initWithNibName:@”MainViewController.xib”
bundle:nil];
self.window.rootViewController
= self.managedObjectContext;
self.mainViewController.managedObjectContext
= self.managedObjectContext;
6º En el MainViewController. h definimos una
propiedad y la sintetizamos en el
fichero .m:
@property
(strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@synthesize managedObjectContect
= _managedObjectContext;
Creación de
un segundo view Controller
1º Volvemos a añadir un UIViewController de la
misma manera que hicimos para el principal. Le ponemos de nombre
SecondViewController. Esto creara sus correspondientes .h, .m y .xib
2º En MainViewController añadiremos una acción
que servirá después para llamar a la ventana del 2º VC. También importaremos
SecondViewController.h
#import
“SecondViewController”;
-(IBAction)showInfo:(id)sender;
3º Modificamos la definición del interface de
MainViewController, que debe quedar de la siguiente manera:
@interface MainViewController : UIViewController
4º En MainViewController.m implementamos la
acción showInfo para que llame al segundo view:
-(IBAction)showInfo:(id)sender{
SecondViewController
*controller = [[SecondViewController alloc]
initWithNibName:@”SecondViewController” bundle:nil];
controller.delegat
= self;
controller.modalTransitionStyle
= UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controller
animated:YES];
}
5º En SecondViewController.h crearemos la clase correspondiente, así como
el delegado, con su correspondiente método DidFinish
@class
SecondViewController;
@protocol
SecondViewControllerDelegate
-(void)secondViewControllerDidFinish:
(SecondViewController *)controller;
@end
6º Igualmente crearemos la definición para el
SecondViewController con un Outlet que apunta al delegado y una acción que
permitirá salir de esta ventana y volver a la anterior.
@interface
SecondViewController : UIViewController
@property
(weak, nonatomic) IBOutlet id delegate;
-(IBAction)done:(id)sender;
@end
7º En
SecondViewController.m importamos el .h, sintetizamos la propiedad delegate e implementamos
la Acción done
#import
“SecondViewController.h”
@synthesize
delegate
-(IBAction)done:(id)sender
{
[self.delegate
secondViewControllerDidFinish:self];
}
8º En MainView.xib coloco un botón y le asigno
de IBAction el método ShowInfo, lo mismo para el botón del SecondViewControler
y la acción Done.
No hay comentarios:
Publicar un comentario