Vì câu hỏi là: cái gì tương đương với didRotateFromInterfaceOrientation
Tôi nghĩ rằng tôi đã đóng góp mã dưới đây:
@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
Tôi đã thử nghiệm trên iPhone trong trình giả lập, nhưng các báo cáo in của tôi sẽ không được chạy nếu tôi kiểm tra bằng iPad vì các đặc điểm của Bộ sưu tập sẽ không thay đổi.
Điều này thật lạ vì đây chính xác là những gì Apple khuyến nghị :
- (void) traitCollectionDidChange: (UITraitCollection *) previousTraitCollection {
[super traitCollectionDidChange: previousTraitCollection];
if ((self.traitCollection.verticalSizeClass != previousTraitCollection.verticalSizeClass)
|| self.traitCollection.horizontalSizeClass != previousTraitCollection.horizontalSizeClass)) {
// your custom implementation here
}
}