我正在尝试将数据从一个VC1(它是一个集合视图)发送到标签栏视图控制器。这是我的prepareForSegue
代码。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var segue = segue.destinationViewController as UITabBarController
var whereToGo = segue.viewControllers[0] as PlayerFromRosterViewController
var selectedIndex = self.collectionView.indexPathForCell(sender as UICollectionViewCell)
whereToGo.selectedIndexPassingForDisplay = selectedIndex?.row
}
但是,我收到的错误是"' [AnyObject]?'没有名为'下标'"在我宣布whereToGo
的行上。我对快速相对较新,所以错误对我来说很难。任何人都可以帮我弄清楚我哪里出错了吗?谢谢!
答案 0 :(得分:0)
我认为你混淆标签栏控制器和segue。选项卡栏控制器具有属性viewControllers
,其中包含与各种选项卡栏项关联的视图控制器。 segue(UIStoryboardSegue)没有此属性。
那为什么编译器不抱怨?因为重新定义传递给方法的segue
变量!
您可以通过调用标签栏控制器来解决此问题。
var tabBarController = segue.destinationViewController as UITabBarController
var playerController = tabBarController.viewControllers.firstObject
as PlayerFromRosterViewController
尝试争取非常清晰明确的变量名称。
答案 1 :(得分:0)
我遇到了同样的问题,上面接受的答案对我不起作用。但这确实如此:
var tabBarController = segue.destinationViewController as UITabBarController
var playerController = tabBarController.viewControllers?.first as PlayerFromRosterViewController