내가 정의 세포와 UICollectionView를 구현하려면, 이전에 내가 가진에 UICollectionView를 넣어 :아이폰 OS : 별도의 클래스
class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout
내가
func numberOfSections(in collectionView: UICollectionView) -> Int
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
를 구현하고 잘 작동하고 내부. 이제는 셀 선택과 관련된 더 많은 기능을 구현하고 싶지만 UICollectionView 구현을 다른 파일로 이동하려고하므로 MVC 패턴을 따르고 싶습니다. 그럼 난이 :
class ViewController: UIViewController {
@IBoutlet var grid: UICollectionView!
ovverride func viewDidLoad() {
...
grid = GridView(grid.frame, GridLayout()) //GridLayout() is the layout file working fine
}
}
및 다른 파일 :
class GridView: UICollectionView, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {
func numberOfSections(in collectionView: UICollectionView) -> Int {}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {}
}
그러나이 오류주지 실행하는 경우 : 여기 링크를 확인
collectionView:numberOfItemsInSection:]: unrecognized selector sent to instance
을 : error, 그리고에 시도 ViewController에서이 작업을 수행하십시오.
grid.dataSource = grid as! UICollectionViewDataSource?
grid.delegate = grid as! UICollectionViewDelegate?
하지만 작동하지 않습니다. 이 문제를 해결하는 방법을 알 수 있습니까?
편집 클래스 AppDelegate가 오류를 제공합니다. 또한 GridView의 이니셜 라이저를 설정하려고 시도했습니다.
override init(frame: CGRect, collectionViewLayout layout: UICollectionViewLayout) {
super.init(...)
self.dataSource = self
self.delegate = self
}
그러나 작동하지 않습니다.
모델 배열을 확인하십시오. 아니요. –