iOS 5
wprowadza koncepcję niestandardowego kontrolera widoku kontenera i zapewnia interfejs API podobny do addChildViewController
. Pytanie: czy możesz dodać kontroler widoku jako dziecko i nadal wyświetlać go za pomocą presentViewController
? Czy to drugie automatycznie powoduje, że jest kontrolerem podrzędnym urządzenia presentingViewController
?addChildViewController i presentViewController
Odpowiedz
To nie jest sposób użycia.
Relacja nadrzędna/podrzędna ma zastosowanie, gdy kontroler widoku ma widoki podrzędne zarządzane przez ich własne kontrolery widoku, na przykład kontroler UITabBarController, w którym kontroler widoku nadrzędnego rysuje karty, a kontrolki widoku podrzędnego rysują zawartość każdej karty .
Jeśli przedstawisz kontroler widoku przy użyciu presentViewController, zwykle zajmuje on cały ekran lub pojawia się w trybie modalnym, dzięki czemu kontroler widoku nie ma już kontroli. W tym scenariuszu nie ma powodu, aby prezenter był rodzicem, ponieważ nie musi współpracować z przedstawionym kontrolerem - po prostu robi to na uboczu, dopóki przedstawiony kontroler nie zostanie ponownie zwolniony.
Dlaczego to zrobiłeś? Jeśli jest tak, że kontrolery widoku mają odniesienia do siebie nawzajem i mogą przekazywać dane, istnieją inne sposoby, aby to zrobić (np. Wzorzec delegatów, NSNotification, lub nawet właściwość łącząca te dwa).
Gdzieś musi być odniesienie do przedstawionego kontrolera widoku. Czy jest trzymany przez system? –