Desarrollar una app universal en dispositivos iphone, ipad , retina

Veamos como realizar una app universal utilizando para ello los storyboard.

Creas un nuevo proyecto utilizando la plantilla singleView app, y en la siguiente ventana le dices que usas storyboard y activas que sea una aplicación universal..

Ahora por defecto te creara dos mainstoryboards.. (si te fijas uno es para ipad y el otro es versión iphone5..)vamos a entrar en el MainStoryboard_iPhone, y nos vamos al menú que nos aparece a la izquierda de nuestro archivo storyboard (el cual aparece todas las vistas y controladores que hay creados), pulsamos sobre ViewController y en el visor de utilidades (antes te dije donde esta) pulsas sobre el cuarto icono empezando por la izquierda (inspector de atributos) y desplegamos el menú de simulated metrics. Dentro de el nos aparece size, desplegamos su menú y seleccionamos retina 3.5 full screen.

Bueno vamos a crear el tercer storyboard para nuestro iphone5, haces click con el botón derecho de tu ratón sobre cualquier clase de tu proyecto, le das a newfile.. y seleccionas dentro de la casilla IOS interface Builder y por ultimo seleccionas storyboard, le pones el siguiente nombre MainStoryboard_iPhone5… ahora entras en este nuevo storyboard que acabas de crear y le añades una ViewController, pulsas igual que antes sobre ese viewcontroller (el cual te aparece en la parte izquierda de tu storyboard) nos vamos al visor de utilidades (antes dije donde esta) y pulsamos sobre el tercer icono empezando por la izquierda (inspector de identidad) y dentro de el despliegas custom class…y en class escribes lo siguiente ViewController

El siguiente punto es, te vas al navegador de tu proyecto (parte izquierda de tu ventana xcode) donde te aparecen todos los archivos de tu proyecto y busca la carpeta supporting files, ahora busca el archivo «nombreDeTuProyecto-info.plist» si te fijas dentro de el en la parte inferior casi de la lista te aparece dos archivos que se llaman main storyboard file base name… bueno pues abra que incluir un tercero, para ello haz click sobre uno de esos nombres y pulsa el símbolo mas que te aparecerá y escribe pega esto que te paso: Main storyboard file base name (iPhone) y pulsas intro (copialo y pegalo, o bien buscalo en la lista que te aparecerá)….. una vez todo correcto cuando creas ese apartado que te digo, en la parte derecha de este te aparece una casilla en blanco, pulsa dos veces sobre ella y escribe lo siguiente: MainStoryboard_iPhone5 pulsas intro..y ala, ya tienes tu storyboard configurado…

Ya solo falta introducir el código necesario para que distinga entre que vista abrir en caso de ser un dispositivo u otra..para eso te vas al appDelegate.m e introduces el siguiente código en tu método didFinishLaunchingWhithOptions:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];

    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {

        if (_window.frame.size.height == 480) {
            UIStoryboard *story = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:Nil];
            [_window setRootViewController:[story instantiateInitialViewController]];
        } else {
            UIStoryboard *story = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone5" bundle:Nil];
            [_window setRootViewController:[story instantiateInitialViewController]];
        }

    } else {
        UIStoryboard *story = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle:Nil];
        [_window setRootViewController:[story instantiateInitialViewController]];
    }

    // Override point for customization after application launch.
    return YES;
}

 

 

 

Esta entrada fue publicada en IOS y etiquetada , , , , , . Guarda el enlace permanente.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.