我有一个父视图:
class TestViewController: BaseViewController { ...
我想在
UIViewController
中接收通知,因此在其BaseViewController
中添加一个观察者:NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(BaseViewController.receivedNotification(_:)), name:"NotificationIdentifier", object: nil)
我无法删除
BaseViewController
上的观察者,因为通知是从presentedViewWillAppear
发送的,可以在每个ViewWillDisappear
上显示,父UIViewController
因此UIViewController
始终消失。所以在应用程序中导航之后,会有多个observer add,我会多次收到通知。
我应该怎么做才能只执行一次通知选择器?或者如何在按下另一个
BaseViewController
时BaseViewController
(但在出现时不移除)? 最佳答案
你可以很好地使用:
NSNotificationCenter.defaultCenter().removeObserver(observer: <The class from which you want to remove>, name: "Name of notification which you want to remove", object: nil)