2013-02-02 5 views
6

Ho un controller di visualizzazione con un'etichetta e un campo di testo. Ho anche aggiunto una vista container che punta a un altro controller di visualizzazione tabella con una sezione e tre righe, in pratica una vista tabella statica. Non riesco a trovare alcuna documentazione/esempio che indichi come si passano i dati tra il controller Vista che tiene il contenitore Vista contenitore e Vista tabella incorporato nella vista contenitore. Voglio una comunicazione a entrambi i lati?In iOS 6, come si usano i dati di pass tra il controller View che tiene l'oggetto 'Vista contenitore' e il controller Vista tabella che è incorporato in esso?

risposta

0

Ci sono nuove proprietà su UIViewController -childViewControllers e -parentViewController. Potresti usarli.

In alternativa è possibile impostare una relazione da soli. Stanco dei cicli di conservazione. Forse il genitore possiede il bambino e il bambino ha un debole riferimento al genitore.

8

Il controller incorporato nella vista contenitore (storyboard), viene aggiunto automaticamente come childViewController del controllore in cui viene aggiunta la vista contenitore. Giusto per dare un senso a quello che voglio dire, aggiungere questa riga, nel metodo viewDidLoad del controller di base:

NSLog(@"children : %@", self.childViewControllers); 

Allora supponiamo in VC1, si aggiunge una vista contenitore con un VC2 controller integrato (il vostro tableViewController), quindi l'istruzione precedente registrerà VC2 come figlio di VC1. Per accedere a VC2 da VC1, utilizzare semplicemente [self.childViewControllers objectAtIndex: 0] e per accedere a VC1 da VC2, utilizzare self.parentViewController.

Spero che questo aiuti

0

[self.childViewControllers lastOject] o [self.childViewControllers objectAtIndex:index];, a seconda di quanti bambino VC di cui si dispone.