gpt4 book ai didi

ios - 如何从另一个 Controller 启用滚动?

转载 作者:行者123 更新时间:2023-11-28 06:48:12 24 4
gpt4 key购买 nike

我有 2 个 Controller :ViewController 和 GalleryViewController(上面有 Collection View )。从我为 GalleryViewController Scrolling Enabled 中的 collectionView 设置为 false 的 Storyboard。现在,如何从 ViewController 将其更改为 true

我已经试过了:

var vc: GalleryViewController?
vc.collectionView.scrollEnabled = true

但它不起作用。是否有另一种解决方案可以让我从另一个 Controller (ViewController)更改滚动?

最佳答案

您的代码将创建一个新的 GalleryViewController 实例,您需要使用现有实例。

您有多种选择,部分取决于您如何从 ViewController 导航到 GalleryViewController

如果您从初始 Controller 创建 Gallery View,那么您应该使用 prepareForSegue,类似这样

override func prepareForSegue(segue: UIStoryboardSegue?, sender: AnyObject?) {
if segue!.identifier == "GallerySegueOrWhateverYouHaveCalledIt" {
let viewGalleryController:ViewGalleryController = segue!.destinationViewController as ViewGalleryController
let collectionViewLink = viewGalleryController.collectionView
}

}

如果您使用的是选项卡 Controller ,并且假设您知道 GalleryView 的索引,我们将其命名为 indexGalleryView,那么它就更容易了

var vc = tabBarController!.viewControllers![indexGalleryView] as! GalleryViewController
vc.collectionView.scrollEnabled = true

如果你有一个 ViewController -> Container -> Embed GalleryViewController -> CollectionView,你可以像这样在顶级 Controller 的 viewDidLoad 中获取嵌入式 ViewController 的句柄

    for vc in self.childViewControllers
{
if vc.isKindOfClass(GalleryViewController)
{
myGalleryViewController = vc as! GalleryViewController
}
}

一旦有了 myGalleryViewController,您就应该能够访问 subview 上的所有内容

关于ios - 如何从另一个 Controller 启用滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35717449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com