Karena pertanyaannya adalah: apa yang setara dengan didRotateFromInterfaceOrientation
Saya pikir saya akan menyumbangkan kode di bawah ini:
@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
Saya menguji pada iPhone di simulator, tetapi pernyataan cetak saya tidak akan berjalan jika saya menguji menggunakan iPad karena traitsCollection tidak akan berubah.
Ini aneh karena inilah yang direkomendasikan Apple :
- (void) traitCollectionDidChange: (UITraitCollection *) previousTraitCollection {
[super traitCollectionDidChange: previousTraitCollection];
if ((self.traitCollection.verticalSizeClass != previousTraitCollection.verticalSizeClass)
|| self.traitCollection.horizontalSizeClass != previousTraitCollection.horizontalSizeClass)) {
}
}