2015-06-23 12 views
11

Niedawno zaktualizowałem swoją aplikację z iOS 8.3 do iOS 9. Po naprawieniu różnych błędów za pomocą kodu udało mi się skompilować aplikację i uruchomić ją, kiedy zauważyłem następujący problem.Widok jest wyświetlany z animacją widoku modalnego zamiast animacji show (push).

Kiedy wykonuję kliknięcie z przerwą, na przykład UIButton, widok załadowany z przejściem pojawia się z animacją widoku modalnego (przesuwa się od dołu do góry), ale w serii ujęć jest to Show (e.g. Push). Ponadto przycisk powrotu z kontrolera nawigacyjnego nie jest już wyświetlany.

Druk konsola to kiedy przeprowadzić segue:

Attempting to load the view of a view controller while it is deallocating is not allowed and may result in undefined behavior (<UISearchController: 0x7ffde14866b0>)

Problem wydaje się być obecna tylko w widoku, podczas ładowania innych poglądów, starałem się ustawić inne poglądy jak Kontroler widoku początkowego i wszystkie prace.

+0

Proszę napisać kod, który zostanie wywołany, aby przedstawić nowy kontroler widoku z nieoczekiwaną animacją. – ndmeiri

+0

@ndmeiri właściwie nie ma kodu: wykorzystałem scenorys do zrobienia segue. –

+0

Czy oba kontrolery widoku znajdują się w tej samej Storyboard? Czy upewniłeś się, że kontroler widoku początkowego w tej Storyboard jest ustawiony na UINavigationController? – ndmeiri

Odpowiedz

14

Po obejrzeniu Storyboard w projekcie odkryłem, że problem spowodowany był dodatkowymi kontrolerami nawigacyjnymi po każdej sekwencji Push. Oznacza to, że oprócz początkowego kontrolera nawigacyjnego (root), Storyboard zawierał UINavigationController jako miejsce docelowe dla problematycznych dzwonków Push. Usunięcie tych dodatkowych kontrolerów nawigacyjnych (ale utrzymanie głównego kontrolera nawigacyjnego) rozwiązało problem.

+0

Natrafiłem na ten sam komunikat o błędzie konsoli, ale zwróć uwagę na następujące: segues do kontrolerów nawigacyjnych muszą pozostać ze względu na ich użycie z kontrolerem widoku podzielonego (do kontroler widoku szczegółów); (iw rezultacie) kod nie wymaga odwijania sekwencji (również kod zawiera bloki do ustawiania wartości w widoku nadrzędnym); a komunikat o błędzie konsoli został wyłączony przez użycie następującej linii kodu w 'viewDidLoad' ...' [self.searchController loadViewIfNeeded]; '(uwaga dostępna z iOS 9). – andrewbuilder

Powiązane problemy