代码之家  ›  专栏  ›  技术社区  ›  Ofri

启动后检查序列

  •  0
  • Ofri  · 技术社区  · 6 年前

    我有两个 UIViewController :A、B

    一年一次 segue 已经激活,我在视图B中,我能知道是哪个赛格把我带到这里的吗?C还是D?

    2 回复  |  直到 6 年前
        1
  •  0
  •   mrshl    6 年前

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

    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 }
    }
    

        2
  •  1
  •   Duncan C    6 年前

    我不知道有什么内置的机制,但是你可以让你所有的目标视图控制器都符合一个协议 SourceSegueProtocol 它有一个var来包含调用segue。

    然后在源代码视图控制器的 prepare(for:sender:) 方法可以为符合 .