从包含 UIViewController 为 UIView 的 UIButton 分配回调

Posted

技术标签:

【中文标题】从包含 UIViewController 为 UIView 的 UIButton 分配回调【英文标题】:Assigning a callback to a UIView's UIButton from the containing UIViewController 【发布时间】:2016-01-28 23:19:00 【问题描述】:

现在我有一个 UIViewController 子类,它承载了一个 UIView 子类。这个 UIView 有一个 UIButton,我希望将触摸事件发送到 UIViewController 子类。现在我在 UIView 子类中有一个 getter 方法,所以我抓住按钮并通过使用 UIViewController 子类中的引用来分配它。

实现此结果的最佳方法是什么?

【问题讨论】:

【参考方案1】:

将动作事件添加到您的 ViewController

- (IBAction)myButtonPressed:sender;

现在,如果您使用的是 IB(您应该使用),只需将其链接起来,或者如果在代码中执行此操作,则手动创建事件链接。

[myButton addTarget:self action:@selector(myButtonPressed:) forControlEvents:UIControlEventTouchUpInside];

【讨论】:

按钮在 UIView 的层次结构中,除非我在 UIView 子类上调用 getter 方法,否则我没有直接引用它。 使用getter然后[myView.myButton addTaget: 我想我的问题是关于更好的方法。不是如何为按钮分配回调。抱歉,如果问题不清楚。 最好的方法是使用故事板或 nib 来构建视图。

以上是关于从包含 UIViewController 为 UIView 的 UIButton 分配回调的主要内容,如果未能解决你的问题,请参考以下文章

将自定义 UITableViewCell 从 nib 加载到 Swift 中的 UIViewController

从父 UIViewController 类继承 UI 组件?

从 swiftUI 中的一个嵌入式 UIViewController 导航到 swift UI 中的另一个嵌入式 UIViewcontroller

从 UINavigationController 中弹出一个包含 UITabBarController 的 UIViewController

如何从包含我的 UIViewController 的 UITableViewController 显示新视图?

如何从 UIView 推送 UIViewController