ios - 为什么辅助 ViewConrollers 的 First Responder 不显示主要 ViewController 方法?
问题描述
我的主 ViewController 上有一个方法,如下所示:
@IBAction func sendData(_ button: MyButtonClass) {
self.doSomethingWithMy(button)
}
这个视图控制器是主要的。它嵌入在最初的 NavigationController 中。
在这个主 ViewController 中,我有一个 ViewContainer,它通向一个辅助 ViewController。
我正在尝试使我在此辅助视图控制器中的按钮运行主视图控制器中的sendData
方法。
就此而言,我尝试将按钮拖动到辅助视图控制器的第一响应者,但该sendData
方法不存在。事实上,Xcode 甚至不允许我拖动它并且不显示任何列表。显然,辅助视图控制器不在响应者链中。
不应该是吗?
有没有办法解决这个问题?
解决方案
Interface Builder 对响应者链一无所知。First Responder 代理仅列出现有的 UIResponder 方法。要创建一个 nil 目标动作,它将沿着响应者链查找要调用的方法,请将您的方法选择器手动添加到 First Responder 代理(使用加号按钮),现在形成连接,完全在视图控制器中工作按钮是。
推荐阅读
- angular - Angular 如何对集合级别的更改进行自动更改检测?
- java - 立即为 HTTP 响应生成大型 CSV 报告是一种好方法吗?
- node.js - 将机器人连接到两个语音通道(NodeJS discordJS)
- maven-3 - 用于验证插件配置的 Maven 强制执行规则
- python - Pandas:在一系列可用值之前/之后估算给定数量的缺失值
- laravel - 如何使用 Laravel 中间件修复 ERR_TOO_MANY_REDIRECTS?
- swift - Swfit URLRequest POST 如何使用重复的参数键发出请求
- sql - 表值函数作为参数传递以在 case 语句中生成输出
- node.js - 预授权支付 7 天到期后触发哪个条带 webhook 事件?
- mysql - 如何在SQL中查找表中多个列的总和