私には次のものがあります。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
です。
2回目に失敗する理由は分かりますか?