0

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

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

UIView *test = secondViewControllerInstance.secondViewNew;

NSLog(@"%@",test);
4

1 回答 1

0

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

只有awakeFromNib在第二个视图控制器上调用该方法后才能保证将其实例化。

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

以下是步骤:

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

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

CustomView *customView = [[[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:self options:nil] objectAtIndex:0];
于 2012-08-15T23:14:35.947 回答