2012-02-03 4 views
6

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

9

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).

+0

Gdzieś musi być odniesienie do przedstawionego kontrolera widoku. Czy jest trzymany przez system? –