2016-07-14 11 views
0

enter image description hereWie Container in einem anderen VC ändern? iOS

In Viewcontroller ich habe zwei Eigentum von Containern:

@property (weak, nonatomic) IBOutlet UIView *firstContainerView;
@property (weak, nonatomic) IBOutlet UIView *secondContainerView;

und ich kann mit ihnen alles machen:

self.firstContainerView.alpha = 0;
self.secondContainerView.alpha = 1;

Aber wie ich erscheinen können FirstContainerView von SecondVC-Methode (klicken Sie auf die Schaltfläche)?

+0

das könnte Ihnen helfen https://spin.atomicobject.com/2015/10/13/switching-child-view-controllers-ioss-auto-layout/ –

Antwort

0

Warum verwenden Sie keinen Delegierten, um ViewController zu informieren, dass die Schaltfläche angeklickt wird und ViewController kümmert sich um das Erscheinen/Verschwinden der Containeransichten.

+0

versucht, so, nicht funktionieren! – itwend

+0

Es sollte eigentlich funktionieren, könnten Sie Code teilen können wir herausfinden, warum es nicht funktioniert –

+0

Ok, es gibt einige Probleme mit Ihrer Implementierung. Vor allem - Sie sollten den SecondVC als eine Eigenschaft in Ihrem ViewController festlegen. Dies ist erforderlich, da das zweite Problem darin besteht, dass Sie ViewController nicht als Delegat festgelegt haben. Nachdem Sie die SecondVC-Eigenschaft erstellt haben, sollten Sie etwas wie "self.secondVC.delegate = self" zu viewDidLoad hinzufügen. Und das dritte Hauptproblem - Sie sollten ViewController dazu bringen, das ChangeContDelagate-Protokoll zu übernehmen - hierzu sollten Sie zu ViewController.h wechseln und Ihre @ interface-Zeile wie folgt ändern: "@interface ViewController: UIViewController ". – Werewolf

1

Zuerst müssen Sie einen Zeiger auf den Zielansicht-Controller haben, so dass Sie sehen, zwei VC keine Verbindung, so sollten Sie einen globalen Zeiger für einen anderen VC für den Zugriff erstellen. Sie können ein Singleton erstellen, um diese vc zu halten, oder einfach einen Delegaten oder Block verwenden.