我有一个Viewcontroller,如果我按一个按钮,它将显示另一个。我想检测它是否提供了另一个viewcontroller,但从父VC引用了此viewcontroller。我该怎么办?
答案 0 :(得分:1)
您可以在父视图控制器上添加通知观察者,并从显示的子视图控制器中发布通知以通知观察者。
答案 1 :(得分:1)
我们希望A知道何时出现C。
A -> B -> C
您可以使用委托方法与具有一对多关系的父VC进行交互。
protocol BDelegate: class {
func BVCDidPresentCVC(_ BVC: B)
}
class B {
weak var delegate: BDelegate?
func presentCVC() {
delegate?.BVCDidPresentCVC(self)
}
}
extension A: BDelegate {
func BVCDidPresentCVC(_ BVC: B) {
// A knows B presented to C
}
}
如果您要建立多对多关系(许多VCS知道已经提供了C),请使用通知
class A {
func setupNotifications() {
// A.observeNotifcationCVCPresented
}
}
Class B {
func presentCVC() {
//Notification.notifyCVCPresented
}
}