要保留视图控制器从多个源segue的状态,可以使用以下方法:
var state: [String: Any] = [:]
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "segueIdentifier" {
if let destinationVC = segue.destination as? DestinationViewController {
destinationVC.state = self.state
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Update view based on the state
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
if let sourceVC = presentingViewController as? SourceViewController {
sourceVC.state = self.state
}
}
这样,无论从哪个源segue到目标视图控制器,都可以保留和传递状态信息。记得根据你的需求修改代码示例中的segue标识符和目标视图控制器类名。
上一篇:保留实体