什么是[super awakeFromNib];用于?

时间:2011-12-16 01:36:38

标签: objective-c xcode

我经常看到这行代码

[super awakeFromNib]

awakeFromNib方法中实现视图控制器

我的理解是它告诉awakeFromNib这个视图控制器的超级类(它将是窗口)。 我对吗?如果是这样,为什么我们必须告诉窗口唤醒UIView Controller子类的awakeFromNib方法?

2 个答案:

答案 0 :(得分:5)

  

我的理解是它告诉超级类这个视图控制器......

到目前为止......

  

(这将是窗口)

哎呀 - 这是你混乱的根源。

“视图控制器的超类”是UIViewController。 “super”指的是你的UIViewController子类继承的基类;它与包围你视图的窗口没有任何关系。

所以,除了你在子类实现中所做的一切之外,这样做是调用基本awakeFromNib的默认UIViewController实现。

答案 1 :(得分:1)

上面大卫所说的是正确的,

现在提出您的问题“为什么我们必须告诉窗口唤醒UIView Controller子类的awakeFromNib方法?”

如果在ViewController加载之前有任何自定义修改或任何要加载的数据,我们应该使用awakeFromNib

当控制器本身从笔尖取消存档时,将调用

awakeFromNib