web-dev-qa-db-ja.com

UIView-ビューがロードされたときに通知を受ける方法

viewDidLoad ???のUIViewControllerUIViewに似たものはありますか? UIViewが読み込まれたらすぐに通知(UIViewのサブクラス)し、いくつかのアクションを実行する必要があります。

75
aryaxt

実行する必要があるアクションの種類に応じて、いくつかの手法があります。

  1. -(id)initWithFrame:(CGRect)frame-UIViewの指定された初期化子。ビューがnibからロードされない限り、常にUIViewに送信されて初期化されます。
  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)にアクションを実行することを選択できます。

250
Costique