您的代碼將創建一個新的GalleryViewController
實例,並且您需要使用現有的實例。
您有很多選擇,部分取決於您如何從ViewController
導航到GalleryViewController
。
如果您從最初的控制器創建圖庫視圖,那麼你應該使用prepareForSegue
,像這樣
override func prepareForSegue(segue: UIStoryboardSegue?, sender: AnyObject?) {
if segue!.identifier == "GallerySegueOrWhateverYouHaveCalledIt" {
let viewGalleryController:ViewGalleryController = segue!.destinationViewController as ViewGalleryController
let collectionViewLink = viewGalleryController.collectionView
}
}
如果您使用的是選項卡控制器,並假設你知道你的圖庫視圖索引,讓我們把它indexGalleryView
,那麼它更容易
var vc = tabBarController!.viewControllers![indexGalleryView] as! GalleryViewController
vc.collectionView.scrollEnabled = true
如果你有一個視圖控制器 - >容器 - >嵌入GalleryViewController - >的CollectionView,你可以在一個手柄嵌入的ViewController這樣
for vc in self.childViewControllers
{
if vc.isKindOfClass(GalleryViewController)
{
myGalleryViewController = vc as! GalleryViewController
}
}
頂層控制器的viewDidLoad一旦你有myGalleryViewController
,你應該能夠在子視圖
沒有訪問一切,它在視圖控制器的嵌入控制器。我認爲這種方法不適用於它=/ –
好吧 - 更新的答案 – Russell
哦,不,ViewController在TabBar上,但GalleryVC在ViewController中嵌入VC –