2012-01-27 22 views
9

Acabo de terminar mi aplicación para iPhone y quiero que sea universal. Ya leí algunas publicaciones pero están un poco viejas (alrededor de 2010).Cómo portar una aplicación para iPhone en el iPad (Storyboard)

Lo que tengo:

  • aplicación para el iPhone simple, de reciente creación (IOS 5 - Guión gráfico), con tres pantallas.
  • Mi aplicación representa una tabla con tres cartas que puedes voltear tocándolas. El usuario puede ingresar (en la segunda pantalla) el texto que se mostrará en las tarjetas.
  • Cuando creé el proyecto marqué "Universal", así que tengo dos Storyboards. Después de eso, nada más tuve que ver con iPad (a excepción de una línea en mi opción de correo electrónico de "soporte de contacto" donde utilicé UIModalPresentationPageSheet).

Lo que me gustaría lograr:

  • misma aplicación en el IPAD: mi aplicación es tan sencillo que no tengo ningún uso para división de opiniones, o detalles. Solo quiero los mismos objetos y el mismo diseño pero con gráficos más grandes y mejores (mesa, cartas, etc.).

Me gusta porque sería una excelente migración de nivel de introducción.

que no tienen idea de por dónde empezar. Cuando ejecuto el simulador de iPad aparece una pantalla en blanco y eso es todo.

+0

Erm ... editar el guión gráfico del iPad sería un buen lugar para comenzar. – esqew

+0

¿Entonces para su versión de iPad necesita volver a hacer todo el guión gráfico y volver a usar el código? ¿Agregar nuevamente botones, etiquetas y cada elemento de la interfaz de usuario y conectarlos con sus métodos actuales? –

+0

Sí, las plataformas de iPhone e iPad son muy, muy simuladores. Aparte de algunas excepciones, no debería ser capaz de hacer esto. – esqew

Respuesta

12

Bueno, esto está hecho.

Como con casi todo, esto es bastante fácil una vez que sabe qué hacer.

diría que para esos casos como el mío, donde la interfaz de usuario no cambia en más tamaños o (x, y) coordina el proceso se podría resumir así:

  1. Replicar cada interfaz de usuario elemento en el iPad Storyboard (copiar y pegar hará) y ajustar la posición y el tamaño como mejor le parezca
  2. Vuelva a conectar todo de nuevo. Cada botón, segue (que tendrá que añadir el nombre de segue nuevo también), etc.
  3. Compruebe dentro de su código cada lugar en el que se ve afectada la interfaz de usuario (por ejemplo, coordenadas X, Y), determine si la aplicación se está ejecutando en una iPhone o iPad, y dividir el código en consecuencia
  4. Si tiene cualquier localización de la aplicación que va a tener que actualizar los nuevos elementos de interfaz de usuario en el iPAD Storyboard
  5. Seleccione el destino para las pruebas en el simulador y probarlo

Para identificar en qué dispositivo se está ejecutando la aplicación puede usar lo siguiente:

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    //I'm running on the iPad 
} else { 
    //I'm running on the iPhone 
} 

Y eso es todo. De nuevo, en un caso simple como el mío, la reutilización del código es absoluta (100%), el nuevo código que deberá agregarse es mínimo (básicamente declaraciones IF donde sea necesario) y la duplicación de elementos UI es tan fácil como copiar y pegar .

Espero que esto sea útil para otra persona y si tiene recomendaciones para mejorar esto, son más que bienvenidos.

+2

Seguramente este no es el mejor enfoque para este problema? El potencial de introducir errores/fallas actualizando elementos de la interfaz de usuario, nombres erróneos, etc., parece masivo. :( – jmc

+0

Ver esta respuesta http://stackoverflow.com/questions/8465769/convert-storyboard-from-iphone-to-ipad (era uno de los comentarios sobre esta pregunta, pero muy abajo tan oculto) – jmc

3

Si solo quieres reutilizar el guión gráfico de tu iphone, solo ve a la configuración de tu proyecto. En la pestaña Información de TARGETS, hay filas 'Nombre base del archivo del guión gráfico' y 'Nombre base del archivo del guión gráfico (iPad)'. Simplemente edite el iPad uno para tener el mismo valor que el otro. En mi caso, tuve que editarlo como 'Nombre base del archivo del guión gráfico (iPad)' con el valor 'MainStoryboard_iPhone'.

+0

Establecer dispositivos para universal y esto funciona perfectamente (si su diseño automático es correcto) – Toby

4

Abrir el archivo de guión gráfico en el buscador, Copia de su iPhone de Storyboard y cambiarle el nombre principal-iPad.storyboard

Dentro xCode, haga clic derecho en el guión gráfico -> “abierta” -> “Código Fuente”

Buscar targetRuntime = "iOS.CocoaTouch" y que sea targetRuntime = "iOS.CocoaTouch.iPad"

Ahora guarda todo y volver a abrir Xcode -> iPAD-Storyboard contiene el mismo que el iPhone de archivo, pero podría everyting estar desorganizado, tienes que arreglarlo por ti mismo.

último para obtener el formato de iPad también cambiar el código en el MainStoryboard_iPad.storyboard de: a

A continuación, vaya a su archivo "StroryBoardEx-Info.plist", la búsqueda de "nombre de archivo de la base principal punta (IPAD) "y hacerlo" Main-iPad.storyboard "

Cuestiones relacionadas