prepareForSegue 不适用于自定义 segue (swift)

Posted

技术标签:

【中文标题】prepareForSegue 不适用于自定义 segue (swift)【英文标题】:prepareForSegue won't work with custom segue (swift) 【发布时间】:2015-04-29 14:23:33 【问题描述】:

我创建了一个自定义 segue,但它一直给出同样的错误。即使我创建了一个真正简单的 UIStoryboardSegue 类,它也会发生。

选择器“prepareForSegue:sender:”的覆盖方法有 不兼容的类型 '(CustomOpenSegue, AnyObject?) -> ()'

我是这样称呼它的

override func prepareForSegue(segue: CustomOpenSegue, sender: AnyObject?) 

    segue.iconFrame = sender!.view!.frame


我的自定义 segue 将在没有 prepareForSegue 的情况下工作(在更简单的模式下),但我需要向 iconFrame 传递一个值才能使其按预期工作。

有什么建议吗?

【问题讨论】:

【参考方案1】:

改成

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 
    if segue is CustomOpenSegue 
        let customOpenSegue = segue as! CustomOpenSegue
        customOpenSegue.iconFrame = sender!.view!.frame
    

如果你重写了一个方法,你就不能改变参数类型。

【讨论】:

它不起作用,因为 UIStoryboardSegue 没有一个名为 iconFrame 的成员,它存在于我的自定义 segue 类中。有什么建议吗? 你说得对,我忘了添加类型检查和演员表。 非常感谢!非常感谢

以上是关于prepareForSegue 不适用于自定义 segue (swift)的主要内容,如果未能解决你的问题,请参考以下文章

自定义 403 页面适用于一种环境,而不适用于另一种环境

未从自定义 uitableviewcell 调用 prepareForSegue

自定义 UITableViewCell 不调用 prepareForSegue

JAAS 注销不适用于自定义登录模块

UITapGestureRecognizer 不适用于 UITextField 的自定义子类

CSS 样式表不适用于自定义 QWidget