事件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]; }