Como la pregunta era: ¿cuál era el equivalente de didRotateFromInterfaceOrientation
Pensé que contribuiría con el siguiente código:
@implementation ViewController
- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
[super traitCollectionDidChange:previousTraitCollection];
if (previousTraitCollection.verticalSizeClass == UIUserInterfaceSizeClassRegular) {
NSLog(@"User has rotated to landscape");
} else if (previousTraitCollection.verticalSizeClass == UIUserInterfaceSizeClassCompact) {
NSLog(@"User has rotated to portrait");
}
}
@end
Estaba probando en un iPhone en el simulador, pero mis declaraciones de impresión no se ejecutarán si pruebo usando el iPad ya que la colección de rasgos no cambiará.
Esto es extraño porque esto es exactamente lo que Apple recomienda :
- (void) traitCollectionDidChange: (UITraitCollection *) previousTraitCollection {
[super traitCollectionDidChange: previousTraitCollection];
if ((self.traitCollection.verticalSizeClass != previousTraitCollection.verticalSizeClass)
|| self.traitCollection.horizontalSizeClass != previousTraitCollection.horizontalSizeClass)) {
// your custom implementation here
}
}