我正在使用 show segue 和 unwind segue 在两个iOS
视图控制器 VC1 和 VC2 之间导航。在viewDidLoad()
VC2 中,我让 VC2 成为观察者。这是我的代码:
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(forName: NSNotification.Name(rawValue: "buzzer updated"), object: nil, queue: OperationQueue.main) { _ in
print("set beeperViewImage")
}
}
每次我使用 unwind segue 从 VC2 回到 VC1时,addObserver()
都会调用一次额外的时间,例如,在第四次返回时segue
addObserver 被调用 4 次;在第五次segue
、五次等。即使应用程序被发送到后台并被调用,也会发生这种行为。它会记住在上一个会话中发生了多少次 segue,并从那里获取计数。
我在 VC1 中多次调用没有问题,这是初始 VC。
我试图在展开 segueing 后将 VC2 设置为 nil。
期待任何指导。