Este documento describe el ciclo de vida de las aplicaciones móviles, los controladores y el uso de Interface Builder. Explica que todas las aplicaciones siguen un guión de ejecución desde que el usuario lanza la aplicación hasta que termina, y que los eventos se gestionan a través de un delegate. Además, detalla que los controladores gestionan la lógica de la aplicación y el ciclo de vida de las vistas, y que Interface Builder permite conectar la interfaz con los controladores mediante outlets e actions.
1. 5 - CONTROLADORES Y
LIFECYCLE DE LA APLICACIÓN
Curso de desarrollo de aplicaciones móviles para iPhone y iPad
endika.gutierrez@urbegi.com
alex.rayon@urbegi.com
Urbegi Learning
Contents
2. CONTENIDO
• Lifecycle de la aplicación
• Controladores
• Interface Builder y controladores
3. CONTENIDO
• Lifecycle de la aplicación
• Controladores
• Interface Builder y controladores
4. LIFECYCLE DE LA
APLICACIÓN
• Todas las aplicaciones siguen un guión de ejecución
• Comprende todos los eventos surgidos desde que el
usuario lanza la aplicación hasta que la aplicación finalmente
muere
5. LIFECYCLE DE LA
APLICACIÓN 2
• En las aplicaciones más sencillas de C, toda la vida de la
aplicación transcurre en el método main()
• En Java ocurre de manera similar
• Objective-C parte de la base de C y amplia la lógica
• Recordemos que Objective-C es una extensión de C
6. LIFECYCLE DE LA
APLICACIÓN 3
• Portanto la aplicación parte del método main(). Veamos la
apariencia que tiene
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate
class]));
}
}
• Unicamente llama a UIAplicatiónMain que será el encargado
que gestionar todo el ciclo de la aplicación
7. LIFECYCLE DE LA
APLICACIÓN 4
•A este método UIAplicationMain se le proporciona una
clase que debe implementar el protocolo
UIApplicationDelegate que recibirá todos los eventos de
la aplicación
• Este protocolo comprende todos los posibles eventos
externos a la aplicación que puedan surgir y afecten al
ciclo de vida de la misma
• Ver la referencia online
8. LIFECYCLE DE LA
APLICACIÓN 5
• Loseventos más importantes quedan representados en este
gráfico: ApplicationDelegate
El usuario lanza la
aplicación
application:
main() didFinishLaunching
WithOptions:
UIApplicationMain()
Ciclo de la Recepción de
aplicación eventos
App deja de estar applicationWill
activa ResignActive
La App se mueve al applicationDid
background EnterBackground
9. CONTENIDO
• Lifecycle de la aplicación
• Controladores
• Interface Builder y controladores
10. CONTROLADORES
• El
controlador es el elemento que gestiona la lógica de la
aplicación
• Suele ser de las clases más “pesadas” dentro del paradigma
MVC
• Es el elemento central que debe coordinar Vistas y modelo
11. CONTROLADORES 2
• Son los encargados de crear y gestionar la jerarquía de vistas
• Los controladores heredan de la clase UIViewController
• Desde esta clase gestionan el ciclo de vida de las vistas
12. CONTROLADORES 3
• Los principales métodos para la gestión del ciclo de vida de la vista son:
• − (void)viewDidLoad La vista acaba de ser cargada.
• − (void)viewWillAppear:(BOOL)animated La vista va a aparecer.
• − (void)viewDidAppear:(BOOL)animated La vista acaba de aparecer.
• − (void)viewWillDisappear:(BOOL)animated La vista va a desaparecer.
• − (void)viewDidDisappear:(BOOL)animated La vista ha desaparecido.
• − (void)viewWillUnload Se va a liberar la vista.
• − (void)viewDidUnload La vista se ha liberado
13. CONTROLADORES 4
• Desde estos métodos se realizan las operaciones previas a la
carga de las vistas
• Generalmente en los métodos
• − (void)viewDidLoad
• − (void)viewDidUnload
14. CONTENIDO
• Lifecycle de la aplicación
• Controladores
• Interface Builder y controladores
15. INTERFACE BUILDER
• Interface
Builder es la herramienta proporcionada por Apple
para el desarrollo de interfaces
• Viene incluida en Xcode
16. INTERFACE BUILDER 2
• Se comunica con los controladores mediante dos “palabras
clave”, IBOutlet e IBAction
• Un IBOutletson propiedades que referencian a un elemento
visual desde el controlador. Ej: Etiquetas
• Un son métodos que un evento lanza desde un
IBAction
elemento de la interfaz. EJ: Botones
17. INTERFACE BUILDER 3
• La definición de un Outlet quedaría así:
• @property (nonatomic, weak)IBOutlet UILabel * etiqueta;
18. INTERFACE BUILDER 4
• La definición de una Action quedaría así:
• -(IBAction)botonPulsado:(id)sender;
• Recibe un parametro que es ele elemento que ha lanzado el
evento