चूंकि सवाल यह था कि: किसके समकक्ष था didRotateFromInterfaceOrientation
मुझे लगा कि मैं नीचे दिए गए कोड का योगदान करूंगा:
@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
मैं सिम्युलेटर में एक iPhone पर परीक्षण कर रहा था, लेकिन मेरे प्रिंट स्टेटमेंट नहीं चलेंगे यदि मैं iPad का उपयोग कर परीक्षण करता हूं क्योंकि traitsCollect नहीं बदलेगा।
यह अजीब है क्योंकि यह वही है जो Apple अनुशंसा करता है :
- (void) traitCollectionDidChange: (UITraitCollection *) previousTraitCollection {
[super traitCollectionDidChange: previousTraitCollection];
if ((self.traitCollection.verticalSizeClass != previousTraitCollection.verticalSizeClass)
|| self.traitCollection.horizontalSizeClass != previousTraitCollection.horizontalSizeClass)) {
// your custom implementation here
}
}