2011-03-15 14 views
14

Tengo problemas para averiguar cómo cargar un XIB separado para iPad o iPhone en una aplicación Universal.Problemas con la carga de un XIB para iPad o iPhone

Es bastante fácil convertir el proyecto de Xcode en Universal y tener interfaces de vista principal separadas.

Mi problema es la vista secundaria y conseguir que tenga interfaces separadas para iPad y iPhone.

Por favor, ofrezca cualquier ayuda que pueda brindar ya que he estado trabajando en este tema por días sin éxito. ¡Gracias por adelantado!

Respuesta

32

Sé que la respuesta de @ indragie es muy común, pero es un malentendido común que le causará mucho más trabajo del que realmente necesita hacer.

Siempre y cuando nombre los archivos xib de cierta manera, se seleccionarán automáticamente para iPhone o iPad. Echa un vistazo a mi respuesta a este mismo problema en otro post:

iOS: Using device modifiers for loading xib files?

+0

¡Definitivamente la mejor manera de manejar este problema que he visto! –

+5

Asegúrate de usar ~ ipad y no ~ iPad. Lo último funcionará en el simulador pero no en el dispositivo. –

2

Puede utilizar UI_USER_INTERFACE_IDIOM() para comprobar si la aplicación se está ejecutando en un iPad o un iPhone/iPod touch:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    // Running on iPad 
} else { 
    // Running on iPhone or iPod touch 
} 

Para obtener más información sobre cómo cargar archivos NIB, leer Apple Resource Programming Guide en punta archivos. Es posible que desee comprobar específicamente la Cargando archivos Nib mediante programación sección que muestra cómo cargar programáticamente un NIB desde su código utilizando NSBundle. A continuación, puede usar esto junto con el código anterior para cargar correctamente el NIB adecuado, según el dispositivo en el que esté trabajando.

+6

-1 El SDK de iOS proporciona una convención de nomenclatura simple que cargará el archivo xib correcto en función del dispositivo. No necesita proliferar esta estructura de instrucciones if en todo su código. Lo describo a continuación en mi respuesta. –

3

Sólo tiene que añadir MainView archivo llamado ~ ipad.xib hace que se cargue ésta i.s.o. MainView.xib cuando se ejecuta en un iPad ...

Cuestiones relacionadas