iOS7 앱을 만들고 있는데 새로운 useLayoutToLayoutNavigationTransitions
효과를 사용하려고합니다. 나는 2 UICollectionViewControllers
을 가지고 다음과 같은 처리를 할 때 나는 전환 효과useLayoutToLayoutNavigation iOS7 충돌시 전환
SecondViewController *secondVC = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
secondVC.useLayoutToLayoutNavigationTransitions = YES;
[self.navigationController pushViewController:secondVC animated:YES];
이 잘 작동하지만 내가 원하는 것은 API 호출을하고 다음 완료 블록에서 나는 탐색 스택에 푸시 할을 얻을 그래서
[webAPI getDetailsWithParams:params andCompletionBlock:^(id dict) {
//some work on the result
SecondViewController *secondVC = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
secondVC.useLayoutToLayoutNavigationTransitions = YES;
[self.navigationController pushViewController:secondVC animated:YES];
} andErrorBlock:^(NSError *error) {
}];
처럼 그러나 이것은 다음 MSG와마다 충돌
-[UICollectionView _invalidateLayoutWithContext:]: message sent to deallocated instance 0x17a26400
사람이 내가이 경우 잘못된 뭐하는 거지 말해 줄 수? 완료 블록에서 푸시 할 때 어떻게 전환 효과를 얻을 수 있습니까?
편집 : 다음과 같이 변경하여 두 번째 viewcontroller로 전환 할 수있었습니다.
MyLayout *layout = [[MyLayout alloc] init];
SecondViewController *expandedVC = [[SecondViewController alloc] initWithCollectionViewLayout:layout];
그리고 파일과 함께 제공된 nib 파일도 삭제했습니다. nib 파일은 콜렉션 뷰로 구성되었으며 파일 소유자보기였습니다. 전환 할 수있는 동안 블록에서 이전 코코아 콩 메서드를 사용할 수없는 이유는 아직도 이해할 수 없습니다. 누군가가 저를 위해 빛을 비출 수 있다면 고맙겠습니다.
아니요 위의 Forcing 블록을 주 스레드로 만들려고했는데 initWithCollectionViewLayout을 사용할 때만 작동합니다 : 레이아웃 및 initWithNibName – glogic
콜렉션 뷰를 네비게이션 컨트롤러 애니메이션으로 통합하는 것이 작동한다고 생각합니다. 초기화 장치; 모든 푸시 된 nav 컨트롤러의 콜렉션 뷰를 기본 뷰 컨트롤러 (콜렉션 뷰 컨트롤러)에 연결하고 펜촉을 사용하지 않습니다. – Vazzyb