Ausblenden oder entfernen Sie vorübergehend ein Kind ViewController aus einer parentViewController?
Fragen zu stellen und selbst beantworten, da ich keine Google-Treffer auf, schaffte es aber, eine Lösung zu finden, der am Ende von Versuch und Irrtum)
Mit iOS 5 und 6, Apple hat einige hässliche hacks zu machen InterfaceBuilder support "embedded" viewcontrollers. Sie nicht dokumentieren, wie diejenigen, die arbeiten, geben Sie nur die code-Ebene Beispiele, und Sie decken nur einen begrenzten Teil der Fälle.
Insbesondere möchte ich auf eine embedded-viewcontroller, der ist manchmal etwas versteckt, aber wenn Sie versuchen, die offensichtliche Ansatz es nicht funktioniert (Sie bekommen ein weißes Rechteck Links hinten):
childViewController.view.hidden = TRUE;
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum nicht erstellen Sie einfach ein IBOutlet zu Ihrem container-Ansicht und tun
Wie Sie getan haben, es scheint sich um eine variation auf die manuelle Art und Weise, die gearbeitet, seit iOS 2 (aber die unterstützt nur Ansichten, nicht viewcontrollers) - es ist eine wirkliche, echte UIView eingebettet in die übergeordneten (nicht erwähnt in der Quellcode-Beispiele - es ist nur Hinzugefügt, wenn Sie InterfaceBuilder!).
So, wenn Sie stattdessen tun:
...es funktioniert!
Auch, counterintuitively, Sie können diese Methode aufrufen, zu jeder Zeit aus viewDidLoad ab - die "einbetten " segue" hack von Apple ausgeführt wird vor viewDidLoad, die aufgerufen wird.
So können Sie dies tun, auf Start, um Ihre childViewController start off unsichtbar.
Verwenden Sie Diese
[self.childviewController setHidden:YES];
Falls jemand benötigen, um hide/show alle untergeordneten Ansichten oder Durchlaufen Sie diese: