繁体   English   中英

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

[英]Access outlets in a custom UIButton class after initialization

如果有一个自定义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
}

UIButton子类中实现-awakeFromNib

官方文档

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM