视图控制器框架设置的建议模式?

时间:2015-03-23 21:11:35

标签: ios cocoa-touch design-patterns

我在iOS开发中多次遇到以下操作序列,并且从未完全知道建议的模式是用于实现的:

1)视图控制器 A 创建一个新的视图控制器 B

2) A 设置 B 视图的框架

3) B 然后创建自己的子视图,需要相对于自己视图的框架进行大小调整

请注意,这假设 B 无法找出自己的帧,需要从更高阶的VC设置。


所以,给出以下代码:

b = CustomViewController()
b.frame = CGRectMake(...)

如果他们尝试在 B self.frame内引用viewDidLoad,则会发现该框架尚未提供。所以这种方法失败了。可以将新方法添加到 B ,例如createViews或其他内容,甚至可以利用layoutSubviews,但这两种方法都是笨拙或可能不正确的选择。


我尝试过的另一种方法是创建一个等同于initWithFrame的自定义初始化程序,然后将新视图创建权放在init中,虽然这样做,但它似乎与Apple的Cocoa基本设置相反,其中UIViews有initWithFrame,而UIViewControllers只有init或initWithNibName。

这里推荐的模式是什么?

0 个答案:

没有答案