문제

나는 다중 작업을하고 있습니다 UICollectionViewController모두 다른 레이아웃으로 동일한 내용을 보여줍니다.

애플에 따르면 CollectionViewTransition WWDC 2013의 샘플 응용 프로그램 및 세션 218, UICollectionViewController 호텔이 있습니다 useLayoutToLayoutNavigationTransitions 기본적으로 ''에서 '컬렉션 뷰의 레이아웃을 보간하여 내비게이션 전환을 처리합니다.

내가 두 개가 있다고 가정 해 봅시다 UICollectionViewControllers ~라고 불리는 MasterCollectionViewController 그리고 DetailCollectionViewController. 내가 밀 때 DetailCollectionViewController ~에서 MasterCollectionViewController, 레이아웃이 올바르게 변경되었지만 Collection View는 여전히 선언 된 데이터 소스를 사용합니다. MasterCollectionViewController.

각각에서 이것은 나에게 문제입니다. UICollectionViewControllerS, 섹션/항목 구성을 재 배열해야합니다. 내가하려는 일의 좋은 예는 iOS 7의 사진 응용 프로그램입니다.이 응용 프로그램의 첫 번째 탭에는 세 가지 뷰 컨트롤러의 연도, 컬렉션 및 순간이 있습니다. 이보기 컨트롤러는 모두 동일한 내용을 보여줍니다 : 사진. 각보기 컨트롤러의 다른 점은 사진이 섹션으로 그룹화되는 방법입니다. 섹션 그룹화는의 책임입니다 UICollectionViewDataSource 여기에서 문제입니다.

동작 인 경우 useLayoutToLayoutNavigationTransitions 내가 겪고있는 속성은 정상적인 행동이며, 다른 접근 방식에서 내 목표를 달성 할 수있는 방법이 있습니까?

모든 도움이나 의견에 감사드립니다.

감사!

도움이 되었습니까?

해결책

나는 같은 행동을보고 있고 그것이 이상적이지 않다는 데 동의합니다.

여기서 근본적인 문제는 동일합니다 UICollectionView 인스턴스는 두 뷰 컨트롤러간에 공유/전달됩니다. 나는 대의원과 데이터 소스를 변경하려고 노력했다. UICollectionView 그러나 다양한 문제가 발생했습니다.

결국, 내가 채택한 해결책은 마스터를 만드는 것이 었습니다. UICollectionViewController 대의원 UINavigationController, 구현 :

– navigationController:willShowViewController:animated:

... 이것을 사용하여 a controllerMode 속성 및 스위치 문을 추가합니다 -collectionView:cellForItemAtIndexPath: 그리고 -collectionView:didSelectItemAtIndexPath: 모드에서 필요한 동작을 제공합니다. 나는 또한 코드를 추가했다 -setControllerMode: 마스터 뷰 컨트롤러에서 필요한 상태 변경을 수행합니다.

도움이되기를 바랍니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top