事件willAnimateRotationToInterfaceOrientation不调用

我有几个UIViewController在应用程序上。 但是只有其中的一个会调用willAnimateRotationToInterfaceOrientation事件。

如何使willAnimateRotationToInterfaceOrientation适用于所有可见视图?

RootViewController

 - (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { NSDictionary *userInfo = @{ @"toInterfaceOrientation":@(toInterfaceOrientation), @"duration":@(duration)}; [[NSNotificationCenter defaultCenter] postNotificationName:@"willAnimateRotationToInterfaceOrientation" object:nil userInfo:userInfo]; } 

其他的UIViewControllers

 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willAnimateRotationToInterfaceOrientation:) name:@"willAnimateRotationToInterfaceOrientation" object:nil]; } return self; } - (void)willAnimateRotationToInterfaceOrientation:(NSNotification *)notification { UIInterfaceOrientation toOrientation = (UIInterfaceOrientation)[notification.userInfo[@"toOrientation"] intValue]; NSTimeInterval duration = (UIInterfaceOrientation)[notification.userInfo[@"duration"] floatValue]; [self willAnimateRotationToInterfaceOrientation:toOrientation duration:duration]; } - (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration { // ... } - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; [super dealloc]; }