¿Cómo ajusto los datos de CMMotionManager para la orientación en iOS 8?

Mi aplicación utiliza CMMotionManager para rastrear el movimiento del dispositivo, pero iOS siempre devuelve los datos de movimiento del dispositivo en la orientación estándar del dispositivo (botón de inicio en la parte inferior).

Para obtener los datos de movimiento en la misma orientación que mi UIView, acumulo las transformaciones de vista de mi vista a la ventana de esta manera:

CGAffineTransform transform = self.view.transform;
for (UIView *superview = self.view.superview; superview; superview = superview.superview) {
    CGAffineTransform superviewTransform = superview.transform;
    transform = CGAffineTransformConcat(transform, superviewTransform);
}

Esta transformación se calcula correctamente en iOS 6 y 7, pero iOS 8 cambia el modelo de rotación y ahora las vistas siempre devuelven la transformación de identidad (sin rotación) sin importar cómo esté orientado el dispositivo. Sin embargo, los datos del administrador de movimiento todavía se fijan en la orientación estándar.

Monitorear las notificaciones de rotación del servicio UID y calcular manualmente las cuatro transformaciones parece un enfoque para obtener esta transformación en iOS 8, pero también parece malo ya que la orientación del dispositivo no necesariamente coincidirá con la orientación de mi vista (es decir, al revés en el iPhone es una orientación del dispositivo no normalmente soportado).

¿Cuál es la mejor manera de obtener el resultado de CMMotionManager en la orientación de una UIView específica en iOS 8?