5

Mam UITableViewController, który jest osadzony w UINavigationController i próbuję zaimplementować Peek & Pop w TableView. Część "peek" działa doskonale, ale kiedy próbuję "pop" w następnej ViewController, komórka, którą "podglądałem", i pokazano następną komórkę. Jestem "popping" w UICollectionView, i jak wspomniałem, "peek" połowa pokazuje właściwą komórkę, ale "pop" nie. Ten problem występuje tylko wtedy, gdy używam [self.navigationController showViewController:viewControllerToCommit sender:nil]; lub [self.navigationController pushViewController:viewControllerToCommit animated:YES];, aby wykonać "pop".Peek & Pop - Pop prowadzący do niewłaściwej komórki w UICollectionView

Oto „Peek” pokazując właściwą komórkę Peek showing correct cell

i „Pop” pokazujący złą komórkę (y)
Pop showing wrong cell

Próbowałem użyć [self presentViewController:viewControllerToCommit animated:YES completion:nil]; i prawidłowa komórka jest pokazany , z wyjątkiem tego, że nie daje mi elementów nawigacyjnych, których potrzebuję, więc nie mogę z niego korzystać (chyba, że ​​istnieje sposób na odzyskanie wszystkich elementów nawigacyjnych).

Moja początkowa myśl polega na tym, że coś jest nie tak z tym, jak moja aplikacja określa rozmiar CollectionViewCell. Oto kod, którego używam do tego, chociaż wydaje się, że działa poprawnie z wszystkim innym niż Peek & Pop.

Aby dodać do mojego zamieszania, "pop" działa idealnie, gdy pierwszy lub ostatni element w TableView są "peeked". Każda pomoc zostanie doceniona.

+0

Możesz dodać swoje 'viewControllerToCommit' do' UINavigationController' oraz * present *, że 'navigationController' to _get wszystkie elementy nawigacyjne back_ –

+0

Próbowałem stworzyć nowy' UINavigationController' i moje dane nie zostały załadowane do nowego widoku "komórka, a jedynymi elementami nawigacyjnymi, które pojawiły się, były" UINavigationBar "BLANK i puste" UIToolBar " – Nick

Odpowiedz

2

Więc w końcu zorientowałem się, co było przyczyną tego problemu. Moja aplikacja to aplikacja Universal i używam opcji Popover Segue na iPadach. W viewWillAppear z mojego ViewController, który jest "popping" niepoprawnie, używam [self setPreferredContentSize:CGSizeMake(400.0, 600.0)] do określenia rozmiaru Popover na iPadzie. Po usunięciu tej linii, mój Peek & Pop działał idealnie.

Skończyło się na dodaniu nowej właściwości do mojego kontrolera ViewController @property BOOL fromPeek i ustawieniu tej właściwości na YES w - (UIViewController *)previewingContext:(id <UIViewControllerPreviewing>)previewingContext viewControllerForLocation:(CGPoint)location mojego podglądu ViewController. Ostatecznie zmodyfikowałem mój viewWillAppear na if(!fromPeek) [self setPreferredContentSize:CGSizeMake(400.0, 600.0)]; i problem został rozwiązany!