2016-08-25 2 views
0

두 컨테이너보기 컨트롤러가 포함 된 ViewController에서 사용자 지정 메뉴를 작성하고 있습니다.UICollectionViewCell이 표시되지 않습니다.

상위 뷰는 UICollectionViewController (흐름 레이아웃/가로 스크롤 방향)

밑면이 UIPageViewController

모든게 잘 작동입니다. 그러나, 내 내비게이션 컨트롤러에 포함 된 경우, collectionviewCell dosen't는 예상대로 표시됩니다, 어떤 아이디어?

또한 내비게이션 컨트롤러가 내장 된 경우 다음 기능이 호출되지 않습니다. 없이

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {} 
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { } 

임베디드와 네비게이션 컨트롤러

enter image description here enter image description here

내장 네비게이션 컨트롤러

enter image description here enter image description here

+0

스토리 보드 파일에서 데이터 소스/위임을 설정 했습니까? –

+0

@RutgerHuijsmans, 네. 내비게이션 컨트롤러가 내장되기 전에 모든 것이 작동합니다. – WeiJay

답변

1

컬렉션보기가 포함 된 하위보기 컨트롤러 인 경우 아래와 같이 viewDidLoadviewDidLayoutSubviews 코드를 추가하십시오. 그것은 당신의 문제를 해결해야합니다. UIViewController 인스턴스가 UIScrollView 서브 클래스의 contentInset을 업데이트하여 탐색 컨트롤러 내부에있는 응답 기본적으로

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.automaticallyAdjustsScrollViewInsets = false 
} 

override func viewWillLayoutSubviews() { 
    super.viewWillLayoutSubviews() 
    self.collectionView.contentInset = UIEdgeInsetsMake(self.topLayoutGuide.length, 
                 0.0, 
                 self.bottomLayoutGuide.length, 
                 0.0) 
} 

이유 존재 (이 경우 UICollectionView있어에서). 그래서 여기에서는 인셋을 자동으로 업데이트하지 말라는 의미입니다.

관련 문제