【发布时间】:2013-10-28 14:32:06
【问题描述】:
我有一个纵向和横向的应用程序。在情节提要中,我有两个视图控制器,都使用相同的子类“genericVC”,以及一个作为初始视图控制器的根视图控制器。
当应用程序启动时,rootVC 将实例化两个控制器并根据检测到的方向推送其中一个。我使用下面的方法(rootVC - ViewDidLoad)实例化它们。
self.landscapeVC = [self.storyboard instantiateViewControllerWithIdentifier:@"iPadLandscapeVC"];
self.portraitVC = [self.storyboard instantiateViewControllerWithIdentifier:@"iPadPortraitVC"];
我需要在 self.landscapeVC 和 self.portraitVC 之间以某种方式共享我的 genericVC 类的实例,因此我不需要在每次旋转设备时在它们之间移动数据。
请告诉我怎么做。
谢谢, 卡林
【问题讨论】:
-
那你为什么有 2 个实例呢?
-
因为布局有点复杂,我无法使用自动布局进行管理。一个视图垂直滑动,另一个水平滑动一些子视图。
-
也许这会在情节提要之外更好地处理。创建一个控制器并让它根据方向以不同的方式加载/配置视图。故事板不是魔法或必需的工具...
-
我的应用程序有大量的按钮和子视图,如果无法在故事板或 xib 中使用共享实例,那么在代码中管理所有这些按钮和子视图会有点困难,我可能会实现一个方法来设置/更新每次旋转时所有的属性和实例变量。
-
它将与 XIB 一起使用,因为控制器是所有者。故事板的问题在于控制器是用视图实例化的。
标签: ios iphone objective-c