EDIT: J'étais en retrait de mon approche. J'essaie de transmettre des données d'un VC à un autre. Le VC source n'est pas contrôlé par une barre d'onglets, donc je ne peux pas faire référence au VC de destination. Je tente de référencer le VC de destination dans le Storyboard, mais les données sont toujours nulles sur le VC de destination. J'utilise Core Data et souhaite passer le ManagedObjectContext à un autre VC. Voici le code:Comment obtenir une référence à un contrôleur de vue à partir de UITabBarViewController
......
do {
try self.managedObjectContext.save()
appUserID = user.userID!
} catch {
fatalError("Error: \(error)")
}
}
}
self.passManagedObjectContext()
}
func passManagedObjectContext() {
let profileTableViewController = UIStoryboard(name: "Profile", bundle: nil).instantiateViewController(withIdentifier: "ProfileViewController") as! ProfileTableViewController
profileTableViewController.managedObjectContext = self.managedObjectContext
}
I am passing data from the AppDelegate to other ViewControllers by referencing my TabBarViewControllers stack like so:
let tabBarController = window!.rootViewController as! UITabBarController
if let tabBarViewControllers = tabBarController.viewControllers {
let profileNavController = tabBarViewControllers[4] as! UINavigationController
let profileTableViewController = profileNavController.topViewController as! ProfileTableViewController
profileTableViewController.managedObjectContext = context
}
}
.....
FIN EDIT Je suis en train de faire la même chose maintenant, mais d'un ViewController à un autre qui est accessible via la barre d'onglets (pas de Segue). Le code ne reconnaît pas au-dessus window!.rootViewController
comment puis-je faire référence à la racine UITabBarController?
Vous pouvez partager des données sur les contrôleurs de vue de la barre d'onglets en utilisant segue – Krunal
Où/quand dans AppDelegate essayez-vous de le faire? – DonMag
@DonMag J'ai déjà transmis des données depuis AppDelegate et j'essayais d'utiliser la même approche entre les VCs. Ils ne font pas partie de la même pile de navigation et je ne peux pas le faire via la barre d'onglets. Storyboard Merci. –