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) ) |