初始化后访问自定义UIButton类中的出口

时间:2011-06-15 10:47:15

标签: iphone objective-c ios uiview uicontrol

如果拥有自定义UIButton类,并希望在初始化后访问其titleLabel插座。通常会在viewDidLoad方法中执行此操作,但这仅适用于Controller类。初始化后如何直接访问基类的任何插座?

这里有一个小代码片段,因为大多数时候事后都会更清楚

- (id) initWithCoder:(NSCoder *)aDecoder {
    self = [super initWithCoder:aDecoder];
    if (self) {
        // Here the outlet is still 'nil'
    }
    return self;
}

- (void) viewDidLoad {
    // Not usable with UIControls
}

1 个答案:

答案 0 :(得分:2)

-awakeFromNib子类中实施UIButton

来自the official documentation

  

nib-loading基础结构将awakeFromNib消息发送到从nib归档重新创建的每个对象,但只有在归档中的所有对象都已加载并初始化之后。当一个对象收到一个awakeFromNib消息时,它保证已经建立了所有的插座和动作连接。

     

您必须调用awakeFromNib的超级实现,以便为父类提供执行所需的任何其他初始化的机会。虽然此方法的默认实现不执行任何操作,但许多UIKit类提供非空实现。您可以在自己的awakeFromNib方法中随时调用超级实现。