检查viewcontroller是否从其父VC呈现另一个

时间:2019-03-29 14:56:37

标签: swift xcode uiviewcontroller

我有一个Viewcontroller,如果我按一个按钮,它将显示另一个。我想检测它是否提供了另一个viewcontroller,但从父VC引用了此viewcontroller。我该怎么办?

2 个答案:

答案 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
  }
}