You can override traitCollectionDidChange in ViewController .
But.
traitCollectionDidChange called upon transition from one split mode to another. For example, from 50/50 to 33/66. It causes NOT when you enter multitasking mode or exit it.
If you need to handle all events , including entering and exiting multitasking mode, use viewWillTransitionToSize:withTransitionCoordinator: :
// put this in your ViewController code -(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator { [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator]; // TODO: put your code here (runs BEFORE transition complete) }
If you want your code to be called AFTER , a transitive compelete:
-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator { [coordinator animateAlongsideTransition:nil completion:^(id<UIViewControllerTransitionCoordinatorContext> _Nonnull context) {
source share