2013-08-05 2 views
0

У меня есть родительский контроллер представления и два контейнера в нем, как это:Доступ Container вид контроллер с другого контроллера вида Контейнер

UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
MyCombinationsViewController *myComb = [storyboard instantiateViewControllerWithIdentifier:@"MyCombinationsViewControllerID"]; 
myComb.view.frame = self.combinationsContainer.bounds; 
[self.combinationsContainer addSubview:myComb.view]; 
[self addChildViewController:myComb]; 
[myComb didMoveToParentViewController:self]; 

StatInfoViewController *stat = [storyboard instantiateViewControllerWithIdentifier:@"StatInfoViewControllerID"]; 
stat.view.frame = self.statContainer.bounds; 
[self.statContainer addSubview:stat.view]; 
[self addChildViewController:stat]; 
[stat didMoveToParentViewController:self]; 

Я хочу сделать что-то внутри StatInfoViewController что эффекты MyCombinationsViewController. Как я могу получить доступ к свойствам MyCombinationsViewController, не перераспределяя его?

Делать это:

UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
MyCombinationsViewController *myComb = [storyboard instantiateViewControllerWithIdentifier:@"MyCombinationsViewControllerID"]; 

внутри StatInfoViewController возвращает пустые свойства, когда я пытаюсь сделать что-то вроде NSLog(@"%@",myComb.something);

+0

Используйте NSNotificationCenter, если оба контейнера не в отношениях. – Tirth

ответ

0

Вы можете связать их togehter путем в заголовках StatInfoViewController добавить:

@property (nonatomic, weak) MyCombinationsViewController* myCombinationsViewController 

А затем при их распределении выполните следующие действия:

StatInfoViewController *stat = [storyboard instantiateViewControllerWithIdentifier:@"StatInfoViewControllerID"]; 
UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
MyCombinationsViewController *myComb = [storyboard instantiateViewControllerWithIdentifier:@"MyCombinationsViewControllerID"]; 

stat.myCombinationsViewController = myComb; 


myComb.view.frame = self.combinationsContainer.bounds; 
[self.combinationsContainer addSubview:myComb.view]; 
[self addChildViewController:myComb]; 
[myComb didMoveToParentViewController:self]; 

stat.view.frame = self.statContainer.bounds; 
[self.statContainer addSubview:stat.view]; 
[self addChildViewController:stat]; 
[stat didMoveToParentViewController:self]; 

Тогда вы можете получить доступ к myCombinationsViewController из внутренней StatInfoViewController

Смежные вопросы