首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >启动Segue后检查Segue

启动Segue后检查Segue
EN

Stack Overflow用户
提问于 2018-09-01 01:20:18
回答 2查看 29关注 0票数 0

我有两个UIViewController:A,B

假设有两个序列连接它们: C,D

一旦激活了segue,并且我在视图B中,我能知道是哪个段把我带到这里的吗?C还是D?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-01 01:27:12

有一个prepare(for: segue)函数,允许您在新的ViewController中设置属性。

代码语言:javascript
复制
class OriginViewController : UIViewController {

    ...

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if let destination = segue.destination as? SegueProtocol {
            destination.transitionSegue = segue.identifier
        }
    }
}

class DestinationViewController : UIViewController, SegueProtocol {
    var transitionSegue: String = ""

    override func viewDidLoad() {
        print("Segue: ", transitionSegue)
    }
}

protocol SegueProtocol {
    var transitionSegue : String { get set }
}

编辑:根据评论建议,最好是一个符合协议的目的地,而不是一个特定类型的目的地。

票数 0
EN

Stack Overflow用户

发布于 2018-09-01 01:28:40

我不知道这方面的任何内置机制,但您可以让所有的目标视图控制器符合一个协议SourceSegueProtocol,该协议具有一个包含调用段的变量。

然后,在源代码视图控制器的prepare(for:sender:)方法中,您可以为符合SourceSegueProtocol的目标视图控制器设置该变量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52120142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档