如何让自定义 UIControl 作为推送操作参与 segue?

Posted

技术标签:

【中文标题】如何让自定义 UIControl 作为推送操作参与 segue?【英文标题】:How can I get a custom UIControl to participate in a segue as a push action? 【发布时间】:2013-07-23 08:41:54 【问题描述】:

我有一个继承自 UIControl 的自定义类,用于获取触摸事件。它基本上是充当一个控件的其他控件的集合。我正在将我的应用程序从 xibs 转换为故事板。除了这个,它几乎没有痛苦。

我将一个 UIView 拖到我的场景中,将类更改为我的自定义控件,将它连接到我的 ViewController 上的插座。单击控件时,我想要对控件执行(推送)segue 到另一个 ViewController。但是我的 UIControl 没有设计器中的插座来设置 segue。

可以这样做吗?如果是这样,我应该对班级做什么来启用它?

【问题讨论】:

【参考方案1】:

我不这么认为。查看 Connections Inspector 窗格,UIButtonUIBarButtonItem 实例得到了特殊处理——一个额外的“触发的 segues”操作,您可以连接到相邻的视图控制器:

虽然将视图的类更改为 UIControl 的后代可以使标准的控制事件套件可用,但不幸的是,Interface Builder 不允许您连接 segue。您能做的最好的事情是从您的视图控制器到另一个视图控制器创建一个手动触发的转场,然后将您的自定义控件连接到以编程方式执行转场的IBAction 方法:

- (IBAction)performManualSegue:(XYZCustomControl *)sender

    [self performSegueWithIdentifier:@"manualPushSegue" sender:sender];

【讨论】:

以上是关于如何让自定义 UIControl 作为推送操作参与 segue?的主要内容,如果未能解决你的问题,请参考以下文章

EXCEL宏如何让自定义函数返回错误代码?

有没有办法让自定义类在 UIView 上起作用,而无需在初始化时传递 ViewController(作为参考)?

如何让自定义表格视图单元格扩展到表格末尾?

如何让自定义 UIButton 仅响应不透明部分的点击?

如何让自定义视图观察包含片段的生命周期事件而不是活动?

自定义 UIControl,动作调用两次