Hay bastantes formas de verificar si un dispositivo es un iPad. Esta es mi forma favorita de verificar si el dispositivo es de hecho un iPad:
if ( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad )
{
    return YES; /* Device is iPad */
}
La forma en que lo uso
#define IDIOM    UI_USER_INTERFACE_IDIOM()
#define IPAD     UIUserInterfaceIdiomPad
if ( IDIOM == IPAD ) {
    /* do something specifically for iPad. */
} else {
    /* do something specifically for iPhone or iPod touch. */
}   
Otros ejemplos
if ( [(NSString*)[UIDevice currentDevice].model hasPrefix:@"iPad"] ) {
    return YES; /* Device is iPad */
}
#define IPAD     (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
if ( IPAD ) 
     return YES;
Para una solución Swift, vea esta respuesta: https://stackoverflow.com/a/27517536/2057171
                 
                
                
                 
UI_USER_INTERFACE_IDIOM()es equivalente a([[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)] ? [[UIDevice currentDevice] userInterfaceIdiom] : UIUserInterfaceIdiomPhone). Usted puede ser mejor almacenamiento en caché el resultado en alguna parte:BOOL iPad = UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad; … if (iPad) ….if UIDevice.currentDevice().userInterfaceIdiom == .PadEn Swift puede usar las siguientes igualdades para determinar el tipo de dispositivo en las aplicaciones universales:
El uso sería algo así como:
fuente
userInterfaceIdiomestá 'Disponible en iOS 3.2 y versiones posteriores'. así que ese no debería ser el problema..Phonelugar de.Pad.Esto es parte de UIDevice a partir de iOS 3.2, por ejemplo:
fuente
También puedes usar esto
fuente
UI_USER_INTERFACE_IDIOM()solo devuelve el iPad si la aplicación es para iPad o Universal. Si es una aplicación de iPhone que se ejecuta en un iPad, entonces no lo hará. Por lo tanto, debería verificar el modelo.fuente
Tenga cuidado: si su aplicación está dirigida solo a un dispositivo iPhone, el iPad que se ejecuta con el modo compatible con iPhone devolverá falso para la siguiente declaración:
La forma correcta de detectar un dispositivo iPad físico es:
fuente
Descubrí que alguna solución no me funcionó en el simulador dentro de Xcode. En cambio, esto funciona:
ObjC
Rápido
También en los 'Otros ejemplos' en Xcode, el modelo del dispositivo regresa como 'Simulador de iPad', por lo que el ajuste anterior debería solucionarlo.
fuente
hasSuffix:@"iPad"lugar deisEqualToString@"iPad"... su mejor opción es registrar el modelo de dispositivo que el simulador devuelve y listo a partir de ahí ...Muchas formas de hacerlo en Swift :
Verificamos el modelo a continuación (solo podemos hacer una búsqueda sensible a mayúsculas y minúsculas aquí):
Verificamos el modelo a continuación (podemos hacer una búsqueda sensible a mayúsculas / minúsculas aquí):
UIDevice.currentDevice().userInterfaceIdioma continuación solo devuelve el iPad si la aplicación es para iPad o Universal. Si se trata de una aplicación de iPhone que se ejecuta en un iPad, entonces no lo hará. Por lo tanto, debería verificar el modelo. :Este fragmento a continuación no se compila si la clase no hereda de un
UIViewController, de lo contrario, funciona bien. IndependientementeUI_USER_INTERFACE_IDIOM()solo devuelve iPad si la aplicación es para iPad o Universal. Si se trata de una aplicación de iPhone que se ejecuta en un iPad, entonces no lo hará. Por lo tanto, debería verificar el modelo. :fuente
* *
* *
fuente
Muchas respuestas son buenas, pero las uso así en Swift 4
Crear constante
Usar así
Editar: como se sugiere, Cœur simplemente crea una extensión en UIDevice
fuente
Appestructura cuando puedes hacer lo mismo con unaUIDeviceextensión?Puede consultar rangeOfString para ver la palabra que existe iPad así.
fuente
["I am not an iPad" rangeOfString:@"iPad"].location != NSNotFounddevuelve verdaderoOtra forma más rápida:
Uso:
fuente
En Swift 4.2 y Xcode 10
Si quieres detectar un dispositivo específico
fuente
¿Por qué tan complicado? Así es como lo hago ...
Swift 4:
De esta manera solo puedes decir
if iPad {}fuente
Para las últimas versiones de iOS, simplemente agregue
UITraitCollection:y luego en
UIViewControllersolo verificar:fuente
fuente