Mam UIViewController - nazwijmy go "FormController" - który jest po prostu formą, która edytuje obiekt. Chcę używać go w 2 różnych sytuacjach:Ponowne użycie UIViewController w sytuacjach modalnych i niemodalnych
Tworzenie nowego obiektu - przy użyciu przy użyciu metody UINavigationController za
presentModalViewController:
.Edytowanie istniejącego obiektu - przesuń kontroler widoku na stos UINavigationController, nie używając metody okna dialogowego.
Istnieje niewielka różnica, że w modalnej sytuacji chciałbym mieć pasek narzędzi z „Anuluj” i „Gotowe” przycisków, natomiast w sytuacji stosu Chciałbym tylko mieć pasek nawigacyjny pod warunkiem przez UINavigationController.
Byłoby to podobne do aplikacji Kontakty, w której ekrany "Nowy kontakt" i ekran "Edytuj kontakt" używają tego samego kontrolera widoku, ale formularz Nowy kontakt jest prezentowany modalnie, podczas gdy ekran Edytuj jest przesyłany do nawigacji stos.
Moje pytanie brzmi: Jaki jest najlepszy sposób na radzenie sobie w obu sytuacjach bez konieczności pisania 2 osobnych, ale w większości identycznych kontrolerów widoku?
Pomyślałem o stworzeniu "ModalFormController", który hermetyzuje gołe "FormController" poprzez kompozycję i dodaje pasek narzędzi, ale czytałem gdzieś w dokumentach, że Apple nie zaleca zagnieżdżania kontrolerów widoku.
Dzięki Alex. Myślę, że wszystkie odpowiedzi były poprawne, ale po pewnych rozważaniach zamierzam pójść w kierunku, który ustawiłeś. Po prostu użyję BOOL-a, który wie, czy FormController jest wyświetlany modalnie. – Sam