【发布时间】:2012-08-15 22:38:09
【问题描述】:
我有两个视图控制器,每个都有一个带有标签的 UIView。当我按下按钮时,我想将第一个视图控制器的视图设置为第二个视图。当我这样做时,第二个视图控制器不会加载视图,并且在我的第二个视图上指向我的 UIView 的指针为空,所以我无法在我的第一个视图上做任何事情。我正在做的就是这个,因为我的 secondViewNew 是我的 secondView 的一个属性。这可以在故事板上完成吗?我也试过 [self.storyboard instantiateViewControllerWithIdentifier:@"beaconContentID"] 方法做事。在这个项目中,secondViewNew 也是一个 UIView,我已经导入了所有相关的类。
SecondViewController *secondViewControllerInstance = [[SecondViewController alloc] init];
UIView *test = secondViewControllerInstance.secondViewNew;
NSLog(@"%@",test);
【问题讨论】:
-
我还尝试通过插入 [secondViewControllerInstance loadView]; 从我的第一个视图中加载视图
-
您的 secondViewNew 不会在 alloc/init 之后立即加载。只有在第二个视图控制器上调用
awakeFromNib方法后才能保证实例化它。我不确定你想要实现什么,但听起来你应该将你的视图与视图控制器分开,如果它不“属于”其中之一。只需继承 UIView 并创建一个关联的 nib。这样,您可以在需要时实例化视图。 -
是的,这就是我决定要做的,但是如何将 nib 文件与 OBJ-C 文件相关联?我刚刚创建了一个新的 nib 文件,但我无法将文件的所有者与我的任何类相关联。
-
我会把它写下来作为答案,因为这可能会太长。
标签: ios cocoa-touch uiview uiviewcontroller