¿Correcto comportamiento? – La aplicación de iPhone que se ejecuta en iPad carga xib con ~ extensión de ipad

Me he topado con lo que creo que es un comportamiento extraño en iOS: una búsqueda de StackOverflow no ha encontrado nada idéntico a mi problema.

Esencialmente, si tiene dos files .xib con modificadores de dispositivo (~ iphone y ~ ipad), y ejecuta una aplicación de iPhone (NO universal) en el iPad (es decir, dentro de la window del simulador de iPhone) intentará cargar el ~ ipad xib file en lugar del ~ iphone xib.

¿Es esto un error? Espero que el ~ iphone xib se cargue. A pesar de que el dispositivo real es un iPad, emula un iPhone, ¿verdad? Entonces, ¿debería cargar el file de interfaz de iPhone?

Pasos para reproducir:

  1. Cree una nueva aplicación de iPhone (no universal) en XCode: use la plantilla 'Vista única'.
  2. Cambiar el nombre de ViewController.xib a ViewController ~ iphone.xib
  3. Duplique y cambie el nombre de la xib, para que ahora tenga ViewController ~ iphone.xib y ViewController ~ ipad.xib
  4. Ejecute esta aplicación de iPhone en el simulador de iPad (o en un dispositivo de iPad real): el ~ ipad XIB está cargado en lugar del ~ iPhone xib.

¿Alguien puede sugerir cómo podría solucionar este problema? Es complicado porque mi proyecto XCode actual tiene múltiples objectives (1. aplicación solo para iPhone 2. aplicación solo para iPad), así que necesito admitir todos los escenarios, de ahí el uso de modificadores de dispositivo.

Normalmente hago esto cuando trabajo con nibs:

- (id)init { if( [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomiPhone ) { nibNameString = @"mynib-iPhone"; } else { nibNameString = @"mynib-iPad"; } self = [super initWithnNibName:nibNameString bundle...