Comment accéder à ObjectAtIndex dans tabBarController avec Swift?

Je disais dans obj-c

[self.tabBarController.viewControllers objectAtIndex:1]; 

mais maintenant dans swift no ObjectAtIndex plus

 self.tabBarController.viewControllers.ObjectAtIndex 

Mettre à jour

ok je vais le rendre simple permet de considérer que j'ai tabBarController il contient 2 object [FirstViewController, SecondViewController] et j'essaie de faire un délégué entre l'object ici est le code pour définir le délégué

 var Svc:SecondViewController = self.tabBarController.viewControllers[1] as SecondViewController! Svc.delegate = self 

quand je cours, j'ai eu cette erreur 0x1064de80d: movq% r14,% rax et aucune erreur de console apparaît

Votre code est OK:

 var svc:SecondViewController = self.tabBarController.viewControllers[1] as SecondViewController! svc.delegate = self 

… cependant vous pouvez omettre ! marque à la fin et :SecondViewController définition de type :SecondViewController car elle peut être inférée par le cast:

 var svc = self.tabBarController.viewControllers[1] as SecondViewController 

Le problème apparaît parce que vous essayez de lancer à la mauvaise class. Essayez d'imprimer pour déboguer le nom du journal de la class d'object à [1] ; ajoutez ceci avant votre dissortingbution pour vérifier le nom de la class:

 let vcTypeName = NSSsortingngFromClass(self.tabBarController.viewControllers[1].classForCoder) println("\(vcTypeName)") 

METTRE À JOUR:

Comme nous l'avons compris dans les commentaires, vous devez UINavigationController controller de vue reçu en UINavigationController :

 var nc = self.tabBarController.viewControllers[1] as UINavigationController 

Plus tard, vous pourrez examiner la propriété nc.viewControllers et voir si, par exemple, son topViewController est SecondViewController :

 if nc.topViewController is SecondViewController { var svc = nc.topViewController as SecondViewController // your code goes here } 

Vous n'avez pas besoin de objectAtIndex dans swift, utilisez simplement l'opérateur subscript :

 self.tabBarController.viewControllers[1]