我在从子UICollectionViewController属性访问父属性时遇到问题。

父级是模态的ChildViewController,添加UICollectionViewController的代码如下所示

let assetPickerController = AssetGridViewController(collectionViewLayout: GridFlowLayout())
addChildViewController(assetPickerController)
let childView = assetPickerController.view!
assetPickerController.par = self
assetPickerController.nav = self.navigationController
assetPickerController.didMove(toParentViewController: self)


AssetGridViewController具有以下代码,显示为nil

let svc = self as! UIViewController
let parentSize = svc.parent!.view.frame.size
print(parentSize)


但是它可以获取par属性(由我自己创建)。我不太确定为什么会这样,这是一个UICollectionViewController问题,还是因为它是模态下的子代而发生了?

最佳答案

将父级大小作为类的属性传递。

添加属性

var parentSize


进入assetPickerController,因此您可以执行

assetPickerController.parentSize = self.view.frame.size //Before didMove
assetPickerController.didMove(toParentViewController: self)

10-08 07:45