UserDefaults Подойдет для этого, сохранив флаг для каждого UIViewController
в его функции viewDidLoad
.
Затем сложите эти три флага в один и отметьте их в viewWillAppear
в каждом UIViewController
.
Проверьте этот код ниже.
// First create this extension to check on each value
public extension UIViewController {
func isAllVistied() -> Bool {
let a = UserDefaults.standard.bool(forKey: "VC1") // Key used to save inside the viewController
let b = UserDefaults.standard.bool(forKey: "VC2")
let c = UserDefaults.standard.bool(forKey: "VC3")
if a && b && c {
return true
} else {
return false
}
}
}
Использование: В каждом UIViewController
используйте этот код:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
UserDefaults.standard.set(true, forKey: "VC1") //Key changes based on the current viewController used in example (VC1, VC2, VC3)
}
override func viewWillAppear(_ animated: Bool) {
if self.isAllVistied() {
view.backgroundColor = .green
}
}
}