En transmettant une valeur à la variable de destination de la transition var au moment de la transition d'écran, vous pouvez transmettre la valeur à un autre écran.
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 est dû au fait que l'écran est généré et non supprimé lorsque l'onglet est commuté pour la première fois. Vous avez besoin d'un moyen de transmettre la valeur autre qu'au moment de la transition d'écran.
Vous pouvez transmettre une valeur à un autre écran ou effectuer un traitement en utilisant un protocole et en l'exécutant après un traitement spécifique.
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()
}
//Traitement depuis un autre écran
func sendValue() {
}
}
tabBarController crée un écran uniquement à la première transition d'écran et n'est pas supprimé. Par conséquent, en supprimant le tabBarController créé autrement qu'en utilisant le protocole, Vous pouvez recréer l'écran lui-même.
python
self.tabBarController!.viewControllers![1].dismiss(animated: true, completion: nil)