有没有办法在类别以外的类中添加观察者?我可以全局添加的东西。
我在下面尝试了类似的东西,但它不起作用。请建议一种方法吗? 这是在HomeVC.m,我也发布了这个类的通知。
UIStoryboard *storybrd = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
HomeViewController *controller =[storybrd instantiateViewControllerWithIdentifier:@"VC123"];
[[NSNotificationCenter defaultCenter] addObserver:controller selector:@selector(somethingHappens:) name:@"notificationName" object:nil];
此方法在VC123.m
中- (void)somethingHappens:(NSNotification *)notification {}
答案 0 :(得分:0)
当你这样做时:
HomeViewController *controller =[storybrd instantiateViewControllerWithIdentifier:@"VC123"];
您将获得控制器的新实例。如果是第一次,你保留该实例并重复使用,那就没问题了。但是你可能正在做的事情并不是保持它,而是它被摧毁了。这通常会导致崩溃(除非控制器在它被销毁之前将其自身作为观察者移除,它应该)。
你可以添加任何实例作为观察者,它不需要专门来自类中,你只需要它的一个实例 - 那个实例应该是现有实例,而不是你的新实例刚刚创建。