Avatar ·

Determinación del tipo de dispositivo (iPhone/iPad) en Swift: UI_USER_INTERFACE_IDIOM() y alternativas

¡Hola a todos! Acabo de empezar a estudiar Swift y me encontré con un problema al determinar el tipo de dispositivo (iPhone o iPad). En proyectos antiguos con Objective-C vi la macro UI_USER_INTERFACE_IDIOM(), pero en Swift no funciona directamente.

Necesito escribir código que se comporte de manera diferente en iPad y iPhone. Por ejemplo, en iPad quiero mostrar un controlador como UISplitViewController, y en iPhone como un UINavigationController normal.

Esto es lo que intenté, pero no compila:

if UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad {
    // iPad
} else {
    // iPhone
}

Xcode muestra un error: "Use of unresolved identifier 'UI_USER_INTERFACE_IDIOM'". ¿Cómo determinar correctamente el tipo de dispositivo en Swift? ¿Hay una forma más moderna que esta macro antigua? ¡Gracias de antemano!

<<>>

Forma correcta de determinar el tipo de dispositivo en Swift

En Swift, la macro U