gpt4 book ai didi

iphone - 将观察者添加到每个 View 或动态呈现 View

转载 作者:行者123 更新时间:2023-11-28 22:29:38 25 4
gpt4 key购买 nike

每当我收到远程通知时,我都会在应用程序本地发布通知。

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
NSLog(@"Received notification: %@", userInfo);
[[NSNotificationCenter defaultCenter] postNotificationName:@"NEWMESSAGE" object:nil userInfo:userInfo]; }

我在函数 viewWillAppear() 中向 View 添加了一个观察者,并在 viewWillDisappear() 中移除了观察者。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(newMessageReceived:) name:@"NEWMESSAGE" object:nil];

and
[[NSNotificationCenter defaultCenter] removeObserver:self];

我的问题是我想覆盖所有 *.m 文件中的每个 viewWillAppear 和 viewWillDisappear 函数,这些文件在我的应用程序中使用了这些函数。

或者我如何动态地将观察者(如上)添加到当前 View 并在该 View 消失时删除观察者。它应该像一个全局操作,每当 View 更改观察器时添加和删除,当它再次更改时。

这可能吗?如果是这样,请指导我。

提前致谢。

最佳答案

一些想法:

  • 您可以子类化 UIViewController 并在子类化的 View Controller 类中实现这些方法。然后,您需要将所有 View 创建为该 UIViewController 的子类。

例子:

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

并将所有 View Controller 创建为 CustomViewController 的子类。

关于iphone - 将观察者添加到每个 View 或动态呈现 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17806799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com