为 UICollectionView 的每个单元格设置一个控制器
Have a Controller for Each Cell of a UICollectionView
我有一个带有 4 个单元格的 UICollectionView,我有一个用于这 4 个页面的控制器,称为 SwipingController。
我想为每个单元格设置一个 UIViewController,我该如何实现?
我反驳你的建议。
更好的方法是让 Views 管理它们的布局,您不需要控制器来管理布局。
我不认为你往这个方向走以后能hold住熟悉的架构(MVC/MVVM/MVP/VIPER..)
同时检查 this。它将帮助您更好地理解视图控制器的作用。
尽管如此,您可以通过 addChildViewController
(documentation here)
实现此目的
添加子视图
let controller = storyboard?.instantiateViewController(withIdentifier: "test") as! UIViewController
self.addChildViewController(controller)
controller.view.frame = CGRect(0, 44, 320, 320)
self.view.addSubview(controller.view)
controller.didMove(toParentViewController: self)
删除子视图
let vc = self.childViewControllers.last
vc.removeFromSuperview()
vc.willMove(toParentViewController: nil);
vc.removeFromParentViewController()
我有一个带有 4 个单元格的 UICollectionView,我有一个用于这 4 个页面的控制器,称为 SwipingController。
我想为每个单元格设置一个 UIViewController,我该如何实现?
我反驳你的建议。
更好的方法是让 Views 管理它们的布局,您不需要控制器来管理布局。 我不认为你往这个方向走以后能hold住熟悉的架构(MVC/MVVM/MVP/VIPER..)
同时检查 this。它将帮助您更好地理解视图控制器的作用。
尽管如此,您可以通过 addChildViewController
(documentation here)
添加子视图
let controller = storyboard?.instantiateViewController(withIdentifier: "test") as! UIViewController
self.addChildViewController(controller)
controller.view.frame = CGRect(0, 44, 320, 320)
self.view.addSubview(controller.view)
controller.didMove(toParentViewController: self)
删除子视图
let vc = self.childViewControllers.last
vc.removeFromSuperview()
vc.willMove(toParentViewController: nil);
vc.removeFromParentViewController()