我有以下traitCollectionDidChange
。traitCollectionDidChange第二次調用失敗
- (void) traitCollectionDidChange:(UITraitCollection *)previousTraitCollection{
[super traitCollectionDidChange:previousTraitCollection];
if (previousTraitCollection.horizontalSizeClass != self.traitCollection.horizontalSizeClass){
NSInteger horizontalClass = self.traitCollection.horizontalSizeClass;
NSInteger verticalClass = self.traitCollection.verticalSizeClass;
switch(horizontalClass){
case UIUserInterfaceSizeClassCompact:
if (verticalClass == UIUserInterfaceSizeClassRegular){
// Setup for iPhone
}
break;
case UIUserInterfaceSizeClassRegular:
if (verticalClass == UIUserInterfaceSizeClassRegular){
// Setup for iPad
}
break;
default:
break;
}
}
}
Update
:即使只是在轉動iPad時也會失敗。任何時候方法再次被調用失敗:if (previousTraitCollection.horizontalSizeClass != self.traitCollection.horizontalSizeClass){
給出錯誤:[NSConcreteNotification horizontalSizeClass]:unrecognized selector sent to instance
。由於previousTraitCollection
是nil
。
你知道它爲什麼第二次失敗嗎?