1. 创建 UIStoryboardSegue的子类实现自定义的segue,并与Storyboard上的segue跳转箭头绑定。
CustomSegue.swift
---------------------------------------------------------------------------------------------------------
import UIKit
class CustomSegue:UIStoryboardSegue {
overridefunc perform() {
super.perform()
//自己定义的一系列代码
print("从\(self.source.description)到\(self.destination.description),标识符为:\(self.identifier?.description ??"nil")")
}
}
2.重写ViewController的 prepare(for segue:sender:)函数,在跳转前通过参数segue获得目标ViewController对象,从而对目标ViewController进行一系列设置。下面的测试代码完成的是ViewControllerA和ViewControllerB通过UIStoryboardSegue的prepare(for segue:sender:)函数相互设置背景色。
ViewControllerA.swift:
------------------------------------------------------------------------------------------------------------
import UIKit
class ViewControllerA: UIViewController {
overridefunc viewDidLoad() {
super.viewDidLoad()
}
//MARK:Navigation
overridefunc prepare(for segue: UIStoryboardSegue, sender: Any?) {
guardlet destination = segue.destinationas? ViewControllerBelse {
print("终点ViewController不是ViewControllerB")
return
}
destination.view.backgroundColor =UIColor.yellow
}
}
ViewControllerB.swift:
--------------------------------------------------------------------------------------------------------
import UIKit
class ViewControllerB: UIViewController {
overridefunc viewDidLoad() {
super.viewDidLoad()
}
//MARK: Navigation
overridefunc prepare(for segue: UIStoryboardSegue, sender: Any?) {
guardlet destination = segue.destinationas? ViewControllerAelse {
print("终点ViewController不是ViewControllerA")
return
}
destination.view.backgroundColor =UIColor.red
}
}
------------------------------------------------------------------------------------------------------------