Iphone 当从NIB实例化时,调用UIView的哪个方法?

Iphone 当从NIB实例化时,调用UIView的哪个方法?,iphone,uiview,custom-view,Iphone,Uiview,Custom View,我有一个简单的自定义视图,通过插座连接到NIB。对于这个特定的视图,我希望在初始化视图时对其执行一些操作,无论它在哪个NIB上 问题是,(id)init或(id)initWithFrame:(CGRect)frame方法都没有在自定义视图上被调用 从NIB实例化UIView时,会调用哪个方法?我只想使用view controller和viewDidLoad方法,除了此特定视图出现在许多不同的NIB上。您可以使用awakeFromNib进行此类初始化。当IB实际创建了对象,然后使用NSCoding

我有一个简单的自定义视图,通过插座连接到NIB。对于这个特定的视图,我希望在初始化视图时对其执行一些操作,无论它在哪个NIB上

问题是,(id)init或(id)initWithFrame:(CGRect)frame方法都没有在自定义视图上被调用


从NIB实例化UIView时,会调用哪个方法?我只想使用view controller和viewDidLoad方法,除了此特定视图出现在许多不同的NIB上。

您可以使用
awakeFromNib
进行此类初始化。当IB实际创建了对象,然后使用
NSCoding
存档时,会调用常规初始化方法,因此在应用程序中永远不会调用这些方法。您也可以使用coder:覆盖将被调用的
initWithCoder:
,但我不建议这样做,因为此时可能没有连接其他插座。

完美!出于某种原因,我认为awakeFromNib仅限于UIViewController—这再次证明,有时所需的只是第二双眼睛:)@RetailEvolutioned:是的,当加载nib文件时,nib文件中所有未归档的对象(代理对象除外—因为这些对象实际上并非从nib中未归档)将在所有对象均未归档且所有插座均已接线后发送awakeFromNib消息。