当我收到远程通知时,我会在应用中在本地发布通知。
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
NSLog(@"Received notification: %@", userInfo);
[[NSNotificationCenter defaultCenter] postNotificationName:@"NEWMESSAGE" object:nil userInfo:userInfo]; }
我已在函数viewWillAppear()中向视图添加了一个观察者,并在viewWillDisappear()中删除了观察者。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(newMessageReceived:) name:@"NEWMESSAGE" object:nil];
and
[[NSNotificationCenter defaultCenter] removeObserver:self];
我的问题是我想覆盖在我的应用中使用这些功能的所有* .m文件中的每个viewWillAppear和viewWillDisappear函数。
或者我如何动态地将观察者(如上所述)添加到当前视图中,并在该视图消失时删除观察者。它应该像一个全局动作,只要视图改变观察者在它再次改变时被添加和删除。
这可能吗?如果是的话请指导我。
提前感谢。
答案 0 :(得分:2)
一些想法:
示例:
//Creating a custom subclass of UIViewController
@interface CustomViewController : UIViewController
@end
@implementation CustomViewController
- (void)viewWillAppear:(BOOL)animated
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(newMessageReceived:) name:@"NEWMESSAGE" object:nil];
}
- (void)viewWillDisappear:(BOOL)animated
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
@end
并创建所有视图控制器作为CustomViewController
的子类。