Durch Übergeben eines Werts an die Übergangszielvariable var zum Zeitpunkt des Bildschirmübergangs können Sie den Wert an einen anderen Bildschirm übergeben.
ViewController
let secondViewController = self.storyboard?.instantiateViewController(withIdentifier: "second") as! secondViewController
secondViewController. value = "value"
self.present(secondViewController, animated: true, completion: nil)
secondViewController
class secondViewController: UIViewController {
var value = String()
override func viewDidLoad() {
super.viewDidLoad()
}
}
tabBarController ist, weil der Bildschirm generiert und nicht gelöscht wird, wenn die Registerkarte zum ersten Mal gewechselt wird. Sie benötigen eine andere Möglichkeit, den Wert als zum Zeitpunkt des Bildschirmübergangs zu übergeben.
Sie können einen Wert an einen anderen Bildschirm übergeben oder die Verarbeitung durchführen, indem Sie ein Protokoll verwenden und es nach einer bestimmten Verarbeitung ausführen.
ViewController
var process: anotherScreenProcess!
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.process = secondViewController() as anotherScreenProcess
self.process.sendValue()
}
}
secondViewController
protocol anotherScreenProcess {
func sendValue()
}
class secondViewController: UIViewController, anotherScreenProcess {
override func viewDidLoad() {
super.viewDidLoad()
}
//Verarbeitung von einem anderen Bildschirm aus
func sendValue() {
}
}
tabBarController erstellt einen Bildschirm erst beim ersten Bildschirmübergang und wird nicht gelöscht. Durch Löschen des TabBarControllers, der anders als mit dem Protokoll erstellt wurde, Sie können den Bildschirm selbst neu erstellen.
python
self.tabBarController!.viewControllers![1].dismiss(animated: true, completion: nil)
Recommended Posts