在我最近开始只使用代码创建控制器之前,我一直主要使用故事板。
我按照我们的编码标准在loadView()
函数中创建了一些子视图,其中第一行是super.loadView()
.
根据我的观察,在我调用之后super.loadView()
,viewController 本身的框架self.view
已经正确设置,这正是 viewController 的框架。
我更有经验的同事说,这在过去 100% 不起作用,它应该给你CGRectZero
,也许我不应该依赖它。
我想听听其他人的更多建议。
这是我的示例项目设置: 1. 创建一个简单的项目 2. 在第一个 VC 中添加一个按钮 3. 通过代码创建第二个 VC,loadView()
在第二个 VC 中覆盖函数,调用super.loadView()
那里并打印self.view.bounds
下一行 4.self.present
或使用 VC1 中的导航控制器在按钮动作中呈现或推送到 VC2 5. 它总是给我第二个 VC 的正确框架。
请告诉我。
- - - - - - 编辑 - - - - - - -
为了澄清我的问题,我知道生命周期功能喜欢viewDidLayoutSubviews
或layoutSubViews
返回正确的视图。我不是在问这些。
我的问题是为什么loadView()
现在给我返回正确的框架。