Wydaje się, że jest to patten używany w aplikacjach Jabłek; Stworzenie nowego rekordu odbywa się za pomocą modalnego widoku, który należy zapisać lub anulować, aby kontynuować, a edycję rekordu wykonuje się poprzez widok pchnięty na stos nawigacyjny.Czy powinienem używać tego samego detektora ViewController do pracy zarówno modalnie, jak i po naciśnięciu?
Nie wydaje się właściwe, aby zasadniczo powielać mój ViewController dla "dodaj" i "edytuj", ale istnieje kilka różnic w tym, jak pchane i modalne ViewControllers działają, które komplikują rzeczy.
Jak mam to zrobić, aby mógł objąć obie bazy?
-
Różnice obejmują.
Po naciśnięciu na stos navBar pojawia się w górnej części widoku i może być skonfigurowany tak, aby zawierał przyciski anulowania/zapisywania. W przypadku prezentacji modalnej tak nie jest, więc aby zduplikować interfejs, należy utworzyć osobny pasek narzędzi i zamiast tego dodać przyciski zamykające/zapisujące.
Kiedy oddalił się popychane widok wysłaliśmy wiadomość do kontrolera nawigacji [self.navigationController popViewControllerAnimated:YES];
, kiedy odwoływanie modalne widoku możemy wysłać wiadomość do siebie [self dismissModalViewControllerAnimated:YES];
Jak dokładnie są „rzeczy skomplikowane” między popychanie i prezentując modal? –
Edytowane pytanie z większą szczegółowością – trapper
Podejdę do tego, definiując protokół (trapperViewDismisser), który umożliwił kontrolerowi widoku wskazanie, że jest gotowy do zwolnienia. Następnie dostosuj trapperViewDismisser i ustaw delegację na siebie. Przenosi różnice na klasę, która wyświetla VC (który i tak zna już różnice). – Thompsonian