UIViewController 类在 viewDidLoad 中做了啥? [复制]

Posted

技术标签:

【中文标题】UIViewController 类在 viewDidLoad 中做了啥? [复制]【英文标题】:What does UIViewController class do in viewDidLoad? [duplicate]UIViewController 类在 viewDidLoad 中做了什么? [复制] 【发布时间】:2013-03-29 14:44:18 【问题描述】:

正如标题,我想知道viewDidLoadUIViewController 中的“默认”实现是什么?它真的有什么作用吗?如果在我的UIViewController's 子类中我写也有关系

-(void)viewDidLoad
  [super viewDidLoad];
  /*custom code here*/

-(void)viewDidLoad
  /*custom code here*/
  [super viewDidLoad];

?

附:这不是重复的,在其他问题中人们会问他们何时应该调用 [super viewDidLoad],而我主要关心的是 UIViewController 的实现如何处理它。

【问题讨论】:

【参考方案1】:

该实现什么也不做,如果您在视图加载后没有任何设置要做,则可以安全地删除它。但是,在这里没有自定义设置是相当罕见的。这是您的视图控制器告诉您其所有 UI 对象都可用于自定义数据的地方。它包含在模板中,并带有一个空实现作为提醒:这里是执行此操作的位置。

至于何时调用super:一般的期望是setup或initialization方法在工作之前调用super,而teardown方法在工作之后调用super

【讨论】:

【参考方案2】:

ViewDidLoad 方法在控制器的视图加载到内存后调用。 这是您要实例化任何实例变量并构建在此视图控制器的整个生命周期中存在的任何视图的地方。但是,此时视图通常还不可见

无论视图层次结构是从 nib 文件加载还是在 loadView 方法中以编程方式创建,都会调用此方法。您通常会覆盖此方法以对从 nib 文件加载的视图执行额外的初始化。

For detail Information

【讨论】:

以上是关于UIViewController 类在 viewDidLoad 中做了啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Swift 协议委托返回 nil

Xcode 中的 UserDefault 不保存文本

iOS Swift 如何监控 UIViewController 生命周期

在特定条件下切换约束

Objective-C 委托内存存储空问题

在 iOS 中使用按钮更改标签的文本