如何从位于故事板上的视图控制器获取子视图

时间:2012-08-15 22:38:10

标签: ios cocoa-touch uiview uiviewcontroller

我有两个视图控制器,每个都有一个UIView,上面有一个标签。我想将第一个视图控制器中的视图设置为按下按钮时的第二个视图。当我这样做时,第二个视图控制器没有加载视图,并且我的第二个视图上的指针对我的UIView是空的,所以我在第一个视图中无法做任何事情。我正在做的就是这个,因为我的secondViewNew是我的第二个View的属性。这可以在故事板上完成吗?我也尝试过[self.storyboard instantiateViewControllerWithIdentifier:@“beaconContentID”]做事的方法。在这个项目中,secondViewNew也是一个UIView,我已经导入了所有相关的类。

SecondViewController *secondViewControllerInstance =  [[SecondViewController alloc] init];

UIView *test = secondViewControllerInstance.secondViewNew;

NSLog(@"%@",test);

1 个答案:

答案 0 :(得分:0)

在alloc / init之后不会立即加载你的secondViewNew。

只保证在第二个视图控制器上调用awakeFromNib方法后实例化它。

我不确定你想要实现什么,但听起来你应该将视图与视图控制器分开,如果它不属于其中一个。只是将UIView子类化并创建一个关联的nib。这样,您可以在需要时实例化视图。

以下是步骤:

  • 创建UIView的新子类,即CustomView
  • 创建一个新的nib文件,即CustomView.xib
  • 将视图添加到您的nib文件并将其自定义类设置为CustomView,根据需要添加子视图等。

最后,在要使用自定义视图的视图控制器中:

CustomView *customView = [[[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:self options:nil] objectAtIndex:0];