我有一个父视图:

class TestViewController: BaseViewController { ...

我想在UIViewController中接收通知,因此在其BaseViewController中添加一个观察者:
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(BaseViewController.receivedNotification(_:)), name:"NotificationIdentifier", object: nil)

我无法删除BaseViewController上的观察者,因为通知是从presentedViewWillAppear发送的,可以在每个ViewWillDisappear上显示,父UIViewController因此UIViewController始终消失。
所以在应用程序中导航之后,会有多个observer add,我会多次收到通知。
我应该怎么做才能只执行一次通知选择器?或者如何在按下另一个BaseViewControllerBaseViewController(但在出现时不移除)?

最佳答案

你可以很好地使用:

NSNotificationCenter.defaultCenter().removeObserver(observer: <The class from which you want to remove>, name: "Name of notification which you want to remove", object: nil)

09-11 11:17