12

presentViewController の変更をリッスンしようとしていますが、そのプロパティが KVO に準拠しているようには見えません (または、少なくともそこから変更を取得できません)。UIViewController がアクティブに表示されているときに UIViewController に変更をリッスンする方法はありますか?

4

1 に答える 1

4

presentedViewControllerは KVO に準拠していないようですが、次の関連するプレゼンテーション/破棄メソッドをオーバーライドすることで、変更を通知することができますUIViewController

override func presentViewController(viewControllerToPresent: UIViewController, animated flag: Bool, completion: (() -> Void)?) {
    // will present view controller
    super.presentViewController(viewControllerToPresent, animated: flag, completion: completion)
}

override func dismissViewControllerAnimated(flag: Bool, completion: (() -> Void)?) {
    super.dismissViewControllerAnimated(flag, completion: completion)
    // did dismiss view controller
}

スウィフト 4:

override func dismiss(animated flag: Bool, completion: (() -> Void)? = nil) {
...
}
于 2016-06-06T18:34:33.923 に答える