【发布时间】:2015-03-20 17:28:25
【问题描述】:
我的故事板中有四个场景。一个场景通过容器视图充当所有其他场景的父级。一切都是这样安排的:
如果你眯着眼睛,你会注意到所有四个都是同一个视图控制器的子类。我这样做是为了可以将每个场景的元素连接到单个通用视图控制器,并避免将 UIViewController 子类化四次。 ProductDetailViewController 实现如下所示:
@implementation ProductDetailViewController {
// Scene 1
__weak IBOutlet UINavigationBar *_navigationBar;
// Scene 2
__weak IBOutlet UILabel *_productName;
// Scene 3
__weak IBOutlet UILabel *_typeNameLabel;
__weak IBOutlet UILabel *_categoryNameLabel;
__weak IBOutlet UIImageView *_richImage;
// Scene 4
__weak IBOutlet UIImageView *_productImageView;
}
问题是viewDidLoad 触发了四次(显然)并且事情显示为空白。当我单步调试调试器时,我传递的产品对象是nil 三个周期,然后在第四个周期初始化。也许视图控制器加载不正常?
无论如何,这种设置是否可行?我认为必须有一种更好的方法来避免每个情节提要场景都使用子类视图控制器。
【问题讨论】:
-
从您的图像和描述中根本不清楚为什么您需要 3 个视图控制器,而不是 3 个视图,它们都是您的一个控制器的子视图。你想在这 3 个子控制器中做什么?
标签: ios uiviewcontroller uicontainerview