80

有没有类似于for a 的viewDidLoad东西???我需要在加载(的子类)后立即收到通知,并执行一些操作。UIViewControllerUIViewUIViewUIView

4

1 回答 1

274

根据您需要执行的操作类型,有几种技术:

  1. -(id)initWithFrame:(CGRect)frame- UIView 的指定初始化器;总是发送到 UIView 来初始化它,除非视图是从 nib 加载的;
  2. -(id)initWithCoder:(NSCoder *)coder- 每当从 nib 加载视图时,总是发送来初始化 UIView;
  3. -(void)awakeFromNib- 在 nib 中的所有对象都初始化并连接后发送;仅当您从笔尖加载对象时才适用;你必须打电话给超级;
  4. -(void)willMoveToSuperview:(UIView *)newSuperview- 在视图作为子视图添加到另一个视图之前立即发送;newSuperview当您从其父视图中删除视图时,可能为 nil;
  5. -(void)willMoveToWindow:(UIWindow *)newWindow- 在视图(或其父视图)添加到窗口之前立即发送;newWindow当您从窗口中移除视图时,可能为 nil;
  6. -(void)didMoveToSuperview- 在视图插入视图层次结构后立即发送;
  7. -(void)didMoveToWindow- 在视图设置其窗口属性后立即发送。-

基本上,您可以选择在初始化期间(1 和 2)、从 nib 加载之后(3)、插入视图层次结构之前(4 和 5)以及之后(6 和 7)执行您的操作。

于 2010-12-21T18:44:34.827 回答