ios - 另一个类的collectionView IBOutlet始终是空的可选

我在CubeController类中声明了一个IBOutlet并将其连接到InterfaceBuilder,如下所示:

// Class CubeController
    @IBOutlet weak var collectionView: UICollectionView!


每当我尝试从另一个类引用collectionView时,collectionView始终是一个空的可选。这是我的代码:

// Another class
    func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) 
    {
       collectionView.performBatchUpdates
       ({
          print("selekt")
          let mug = CubeController()
          let colView = mug.collectionView
          if let _ = colView
          {
            print("uhu")
          }
         }, completion: {_ in
        })
    }


打印“ selekt”,但不打印“ uhu”。这里发生了什么?我在这里犯了什么错误?.CubeController的collectionView插座正在工作并在用户界面中自行显示。如何识别错误?

最佳答案

视图控制器的插座仅在其视图加载时连接。

问题很可能是您实例化了一个新实例,而不是使用对视图控制器存在实例的引用。在这种情况下,您可以找到帮助here

尽管也很可能是不必要的事情。为什么不能使用传入的collectionView参数?还是在这些绝对不同的集合视图下?

最后,如果您确实需要一个新实例,则需要加载新的视图控制器的视图。如果以某种方式显示该视图控制器,则会自动完成此操作,但是可以使用fooViewController.loadView()强制执行该操作。但是,我提醒您不要使用这种方法,因为除非您正在编写单元测试,否则几乎可以肯定这不是您需要做的。