首页 > 解决方案 > 为什么辅助 ViewConrollers 的 First Responder 不显示主要 ViewController 方法?

问题描述

我的主 ViewController 上有一个方法,如下所示:

@IBAction func sendData(_ button: MyButtonClass) {
self.doSomethingWithMy(button)
}

这个视图控制器是主要的。它嵌入在最初的 NavigationController 中。

在这个主 ViewController 中,我有一个 ViewContainer,它通向一个辅助 ViewController。

我正在尝试使我在此辅助视图控制器中的按钮运行主视图控制器中的sendData方法。

就此而言,我尝试将按钮拖动到辅助视图控制器的第一响应者,但该sendData方法不存在。事实上,Xcode 甚至不允许我拖动它并且不显示任何列表。显然,辅助视图控制器不在响应者链中。

不应该是吗?

有没有办法解决这个问题?

标签: iosswiftiphoneuiviewcontroller

解决方案


Interface Builder 对响应者链一无所知。First Responder 代理仅列出现有的 UIResponder 方法。要创建一个 nil 目标动作,它将沿着响应者链查找要调用的方法,请将您的方法选择器手动添加到 First Responder 代理(使用加号按钮),现在形成连接,完全在视图控制器中工作按钮是。


推荐阅读