【问题标题】:VC.isHidden = true not working as expectedVC.isHidden = true 没有按预期工作
【发布时间】:2022-01-03 20:48:00
【问题描述】:

我有一个 Viewcontroller ThirdViewControllerPassenger 上面有多个子视图,包括一个名为 collectionViewUICollectionView 水平滚动卡片。到目前为止,一切都很好。我已经编写了要从 uicollectionviewcells 内部的点击操作执行的代码。点击该操作确实有效并打印到控制台。但是,通过按下其中一张卡片,我想隐藏整个UICollectionView。我已经设置了一个 onTap 函数,如下所示:

@objc func onTap(_ gesture: UIGestureRecognizer) {
    if (gesture.state == .ended) {
        /* action */
        if favCoordinate.latitude == 1.0 && favCoordinate.longitude == 1.0 {
            //There has been an error OR the User has pressed the new Address button
            
            //do
        }else{
            ThirdViewControllerPassenger().collectionView.isHidden = true
            if ThirdViewControllerPassenger().collectionView.isHidden == true {
                print("done!")
            }
        }
    }
}

如您所见,我已经进行了一些故障排除。我已经直接从ThirdViewControllerPassenger 测试了ThirdViewControllerPassenger().collectionView.isHidden = true,它有效。但是,它不适用于单元格。 “完成!” print 永远不会被打印到控制台,因此呼叫永远不会到达。我想知道为什么或我做错了什么。 不要介意第一个 if 语句,该函数尚未编写。那应该没关系。我猜我的其余代码不会导致更多线索。

【问题讨论】:

    标签: ios swift uiviewcontroller uicollectionview


    【解决方案1】:

    每个ThirdViewControllerPassenger() 都在这里

    ThirdViewControllerPassenger().collectionView.isHidden = true
    if ThirdViewControllerPassenger().collectionView.isHidden == true {
      print("done!")
    }
    

    是一个新实例而不是真实实例,您需要访问真实显示的距离

    delegate.collectionView.isHidden = true
    if delegate.collectionView.isHidden == true {
       print("done!")
    }
    

    【讨论】:

    • 对不起,如果这听起来很愚蠢,但在我的范围内找不到委托......委托到底叫什么?
    • delegate 是一个你应该在当前的vc中声明引用ThirdViewControllerPassenger的变量,告诉你如何显示包含上述方法的vc?并据此在您展示时将委托分配给ThirdViewControllerPassenger 实例
    • 有点复杂,因为它是UICollectionView,但我们开始吧:
    • 基本上:我在我的 ThirdViewControllerPassenger 中创建一个 collectionView,然后调用一个为其创建单元格的函数 (CellBuilder)。这些单元格被传回并添加到 CellForIndexAt。这个单元格文件里面是我上面展示的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 2020-03-18
    • 2012-06-14
    • 2014-11-15
    • 1970-01-01
    • 2012-07-02
    • 2011-09-07
    相关资源
    最近更新 更多