It's so pity that UIToolbar
doesn't support size classes for UIBarbuttonItem
elements. How can I hide UIBarbuttonItem
on UIToolbar
for small size class?
First, add this:
- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
[super traitCollectionDidChange:previousTraitCollection];
if ((self.traitCollection.verticalSizeClass != previousTraitCollection.verticalSizeClass)
|| (self.traitCollection.horizontalSizeClass != previousTraitCollection.horizontalSizeClass)) {
[self setupToolbar:self.traitCollection.horizontalSizeClass];
}
}
And then recreate toolbar items:
if (horizontalSizeClass == UIUserInterfaceSizeClassCompact) {
mainItems = [NSArray arrayWithObjects:..., nil];
} else {
mainItems = [NSArray arrayWithObjects:..., nil];
}
[mainToolbar setItems:mainItems animated:NO];