NSNotificationCenter有什么作用?简单说之,就是两个不相干的对象之间可以通过他来传递消息,只要你把相关发送的消息和处理的事件在他那里注册就行了。
以iPad处理方向变化的事件为力,一般可以在didRotateFromInterfaceOrientation事件中放置设备方向变化后的处理代码,但如果有多个view controller需要处理时,可能会比较复杂,这是就可以在NSNotificationCenter来统一处理这个消息:
03 |
[[UIDevice
currentDevice] beginGeneratingDeviceOrientationNotifications]; |
04 |
[[NSNotificationCenter defaultCenter]
addObserver:self selector:@selector(orientationChanged:)
name:UIDeviceOrientationDidChangeNotification object:nil]; |
08 |
-(void)orientationChanged:(NSNotification *)notification |
10 |
UIDeviceOrientation
deviceOrientation = [UIDevice currentDevice].orientation; |
11 |
if (UIDeviceOrientationIsLandscape(deviceOrientation)
) |
16 |
else if (UIDeviceOrientationIsPortrait(deviceOrientation)
) |