如何在另一个视图中解散ViewController



我想在按钮动作内的另一个视图中解散我的视图控制器。我的意思是说,我有一个取消按钮内部UIView,我想把我的viewController cancelButton。我该怎么做呢?

@objc func cancelButtonTapped() {

}

我建议创建一个委托来引用你想要解散的视图控制器:

protocol ViewDelegate {
func dismissViewController()
}

然后让你的视图控制器继承这个委托,并确保创建一个contentviewcontroller函数来符合协议:

class ViewController: UIViewController, ViewDelegate {
func dismissViewController() {
self.dismiss(animated: true, completion: nil)
}
}

最后,将这个委托的引用传递给你的视图,并使用遣散viewcontroller函数:

class CustomView: UIView {
var delegate: ViewDelegate?

@objc func cancelButtonTapped() {
delegate.dismissViewController()
}
}

这个问题回答了如何使用firstResponder从UIView到达UIViewController。不建议这样做。

你的其他选择都围绕着某种pub/sub模式。你可以使用NotificationCenter发布一个消息,你的UIViewController可以监听。

您也可以使用Combine并在那里使用某种发布者来达到相同的效果。PassthroughSubject可能就是你要找的。

相关内容

  • 没有找到相关文章

最新更新