如何在主视图控制器上添加时访问不同的子视图控制器

时间:2013-03-01 14:45:32

标签: ios objective-c

我有一个主视图控制器,我在其中添加不同类型的子项:IntroViewController和ChapterViewController。我在故事板中都有这两个,这就是我添加10的方式(我的主视图控制器有一个滚动视图,当我向左滑动时,下一个视图控制器显示):

 for(int i = 0; i<10; i++) {
     IntroViewController *introViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"View1"];
     [self addChildViewController:introViewController];

 }

此函数将添加10个IntroViewController类型的viewcontrollers。 但是现在它们具有相同的名称,我现在不确定如何访问这些不同的introview控制器,例如,如果我需要更改第5个视图控制器参数怎么办?类似的东西:

     introViewController.initialText = @"test";

但由于他们有相同的名字,我不知道该怎么做......

1 个答案:

答案 0 :(得分:9)

您可以使用childViewControllers属性获取它们。

来自Apple's doc

  

childViewControllers:

     

视图控制器的数组,它们是视图控制器层次结构中接收器的子节点。 (只读)

@property(nonatomic, readonly) NSArray *childViewControllers

它们的索引方式与它们进入控制器层次结构的方式相同。因此,在循环中创建的第5个viewController将与

相同
(UIViewController*)[self.childViewControllers objectAtIndex: 4]