【发布时间】:2012-03-21 11:41:31
【问题描述】:
Apple 的文档没有说明 loadView 的正确实现是什么。
我发现如果你像这样实现 loadView:
- (void)loadView
{
self.view = [[UIView alloc] init];
}
...那么你会得到与根本不实现它不同的行为。特别是,在一个 20 行的项目中,我发现 viewWillAppear 调用时 self.view 的大小为零 - 除非您使用 Apple 的默认版本的 loadView。
在 Google 上查看,有很多“教程”提供了明显错误的 loadView 实现 - 例如将大小强制设置为 (320,480),因为教程作者“发现如果我这样做就可以了”。
我想知道正确的实现应该是什么。
注意:在上面的示例中,我将其添加到 AppDelegate 内的视图层次结构中,如下所示:
[self.window addSubview:(UIViewController*).view];
我相信,在存在 UINavigationController 或 UITabBarController 的情况下,Apple 会做一些额外的魔法 - 作为副作用 - 导致单行 loadView 实现正常工作。但我想正确地编写它,以便它始终有效!
注意:我尝试在根视图上设置自动调整大小掩码,但它不会改变发生的情况:
- (void)loadView
{
self.view = [[UIView alloc] init];
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
}
【问题讨论】:
标签: ios uiview uiviewcontroller