Pregunta

He estado luchando un poco con mi primera aplicación de iPhone real y quería obtener algunos consejos sobre cómo debería estructurarse esto. Estoy buscando algunas mejores prácticas en términos de crear componentes de UI y vincularlos entre sí para crear el flujo de la aplicación (crear vistas / controladores de forma programática frente a Interface Builder, etc.).

Descripción general:
Necesito mostrar un " Iniciar sesión " ver en inicio de aplicación.
--Mostrar " Registrarse " Ver si hacen clic en el botón Registrarse.

Una vez que inicie sesión ... Tengo un TabBarController cargando 4 vistas. Estas 4 vistas tendrán que cargar subvistas (como maestro-detalle).

Mi pregunta es:
1) ¿Cuál es la mejor manera de armar esta estructura de navegación? ¿Crear cada vista como un .xib con un ViewController correspondiente? ¿Cómo se pegan estos juntos?

2) ¿Cómo debo manejar la navegación de inicio de sesión / registro? No se debe mostrar TabBar al inicio, pero lo necesitará después de autenticar al usuario.

Punto de bonificación) ¿Existen mejores prácticas documentadas para este tipo de cosas? He estado pirateando un código viable, pero me perdí mucho y quiero comenzar de nuevo haciéndolo de la manera correcta.

Sé que esto puede ser un poco confuso, toda ayuda es muy apreciada.

EDITAR: para la vista de inicio de sesión en la parte superior de la barra de pestañas, usé esto, bastante simple.

LoginViewController *loginViewController = [[LoginViewController alloc] init];
[loginViewController initWithNibName:@"Login" bundle:nil]; 
[self.tabBarController presentModalViewController:loginViewController animated:YES];
¿Fue útil?

Solución

Cuando crea una nueva aplicación basada en la barra de pestañas en XCode, ya está prácticamente configurado como le gustaría: hay un XIB principal que carga vistas para cada pestaña desde archivos XIB separados. Tienes un XIB por pestaña. Tenga en cuenta que a medida que cambia los tipos o agrega pestañas, debe especificar el tipo de controlador de vista adecuado tanto en el XIB con la barra de pestañas, como en el XIB que utiliza para crear su vista.

En cuanto a la vista de inicio de sesión, un enfoque común es utilizar la barra de pestañas como se muestra arriba, pero en el método de aplicaciónDidFinishLaunching del delegado de la aplicación, presente un controlador de vista modal que muestre la pantalla de inicio de sesión. El controlador modal oculta la barra de pestañas y todo lo demás hasta que estén listos, luego se puede descartar.

Otros consejos

1) ¿Cuál es la mejor manera de reconstruir esta estructura de navegación? ¿Crear cada vista como un .xib con un ViewController correspondiente? ¿Cómo se pegan?

Use UINavigationController y presione sus vistas personalizadas en la pila de navegación según sea necesario. Vea la aplicación de ejemplo del controlador de navegación a través de la opción Nuevo proyecto de Xcode para tener una idea de cómo funciona esto.

2) ¿Cómo debo manejar la navegación de inicio de sesión / registro? No se debe mostrar TabBar al inicio, pero lo necesitará después de autenticar al usuario.

Configure una vista para el inicio de sesión (utilizaría un UITableView con una sección que contiene dos filas para el nombre de usuario y la contraseña, pero esa es mi preferencia). Configure una segunda vista separada para los campos de registro (de nuevo, usaría un UITableView para esto, para mantener el diseño limpio y consistente).

Quizás use una animación de vista para abrir la barra de pestañas después de una autenticación exitosa.

Bonus Point) ¿Hay mejores prácticas documentadas para este tipo de cosas? He estado hackeando un código viable, pero me perdí mucho y quiero empezar a hacerlo de la manera correcta.

Terminarás reescribiendo tu proyecto varias veces, lo cual es algo bueno. Verifique las aplicaciones de muestra de Apple (disponibles en el sitio de iPhone ADC), ya que contienen varias "mejores prácticas". formas de utilizar varios de los componentes UIKit . En cuanto a armar una aplicación más grande, mantenga su diseño lo más simple posible y reutilice la mayor cantidad posible de componentes de la interfaz de usuario de Apple. Siempre puedes personalizar más tarde.

En mi opinión, solo los ejemplos de programación de Cocoa y las aplicaciones muy simples son adecuados para un solo archivo plumín. De lo contrario, debe distribuir los componentes de su interfaz en varias plumillas. Esto significa que cada punta es más pequeña y cuando se carga en la memoria solo cargará esos componentes según sea necesario. Esto mejorará el rendimiento de su aplicación y puede ayudarlo a organizar lógicamente su programa y facilitar la depuración cuando surjan problemas.

En mis aplicaciones de barra de pestañas utilizo MainWindow.xib para contener la ventana principal y la barra de pestañas, pero divido cada pestaña en una plumilla separada por las razones anteriores.

Apple ofrece las siguientes pautas:

Al crear sus archivos plumín, trate de tener en cuenta las siguientes pautas:

Diseñe sus archivos plumín con la carga diferida en mente. Planee cargar archivos plumín que contengan solo los objetos que necesita de inmediato.

En el archivo nib principal para una aplicación Mac OS X, considere almacenar solo la barra de menú de la aplicación y un objeto delegado de aplicación opcional en el archivo nib. Evite incluir ventanas o elementos de la interfaz de usuario que no se utilizarán hasta después de que se haya iniciado la aplicación. En su lugar, coloque esos recursos en archivos plum separados y cárguelos según sea necesario después del lanzamiento.

Almacene componentes repetidos de la interfaz de usuario (como ventanas de documentos) en archivos plum separados.

Para una ventana o menú que se usa solo ocasionalmente, guárdelo en un archivo plum separado. Al almacenarlo en un archivo plum separado, carga el recurso en la memoria solo si realmente se usa.

Para más información puede visitar:

http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/CocoaNibs.html#//apple_ref/doc/uid/10000051i-CH4

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top