我有2个控制器:ViewController和GalleryViewController(上面有集合视图)。从我在GalleryViewController Scrolling Enabled
中为collectionView设置的故事板到false
。现在,如何从true
?
ViewController
我试过这个:
var vc: GalleryViewController?
vc.collectionView.scrollEnabled = true
但它不起作用。是否有另一种解决方案,我可以从另一个控制器(ViewController)更改滚动?
答案 0 :(得分:1)
您的代码将创建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
如果您正在使用标签控制器,并假设您知道GalleryView的索引,请将其称为 for vc in self.childViewControllers
{
if vc.isKindOfClass(GalleryViewController)
{
myGalleryViewController = vc as! GalleryViewController
}
}
,然后就更容易了
myGalleryViewController
如果您有ViewController - >容器 - >嵌入GalleryViewController - > CollectionView,你可以在顶层控制器的viewDidLoad中获得嵌入式ViewController的句柄,如下所示
import {Router,Route,IndexRoute,hashHistory} from 'react-router'
一旦你有了import {Link} from 'react-router';
,你就可以访问子视图上的所有内容