【XCode】（viewController）UIViewController いろんな書き方をしている

リファクタリング（助長コードの低減や汎用性を確保するためのコード整理）

をしたくなるソース。。。

いくつか決まっている文言およびメソッド名を統一していきたい。

例えば、初期化

- initialize - 初期化する

- initialization - 初期化

それぞれのやる内容が同じようなのに微妙に違うメソッド名
皆さんはどれを使いますか？？

特に最初の設定として、初期状態に戻るクリアボタンなどを使う時など


呼び出しメソッド

~~~ObjectiveC:SampleViewController.m
#pragma mark - View Lifecycle

/************************
 * loadView
 * nib=xibなどを使用しない場合にカスタムViewの初期化
 * を行う箇所。
 ************************/
- (void)loadView {
    [super loadView];
   // This is where subclasses should create their custom view hierarchy if they aren't using a nib. Should never be called directly.
}
/************************
 * Storyboardやxibなど、InterfaceBuilderを
 * 利用している場合はこのメソッドを呼び出しては
 * ならない。
 *
 * If you use Interface Builder to create
 * your views and initialize the view 
 * controller, you must not override 
 * this method.
 ************************/

/************************
 * ViewControllerのviewがロードされた後に
 * 呼び出される。
 * 上記の通り、InterfaceBuilderを使用している
 * 場合はサブビューのセットアップは一般的にここで
 * 行うことになる。
 ************************/
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    // Called after the view has been loaded. For view controllers created in code, this is after -loadView. For view controllers unarchived from a nib, this is after the view is set.
}

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    // Called when the view is about to made visible. Default does nothing
}

/*
 * viewWillLayoutSubviewsはviewControllerのviewのlayoutSubviewsメソッドが実行される前に呼ばれる。

updateViewConstraintsは

viewDidLayoutSubviewsはviewControllerのviewのlayoutSubviewsメソッドが実行された後に呼ばれる。
*/

- (void)viewWillLayoutSubviews {
  [super viewWillLayoutSubviews];
  // Called just before the view controller's view's layoutSubviews method is invoked. Subclasses can implement as necessary. The default is a nop.

}
- (void)viewDidLayoutSubviews {
  [super viewDidLayoutSubviews];
   // Called just after the view controller's view's layoutSubviews method is invoked. Subclasses can implement as necessary. The default is a nop.
}

/* Base implementation sends -updateConstraints to the view.
When a view has a view controller, this message is sent to the view controller during
the autolayout updateConstraints pass in lieu of sending updateConstraints directly
to the view.
You may override this method in a UIViewController subclass for updating custom
constraints instead of subclassing your view and overriding -[UIView updateConstraints].
Overrides must call super or send -updateConstraints to the view.
*/

/**
 * 順番としては「制約の更新→レイアウト更新→描画」となるのでupdateConstraints→layoutSubviewsの順番で呼ばれる。
 **/
- (void)updateConstraints {
    [super updateConstraints];
    // Override this to adjust your special constraints during a constraints update pass

}

/****
 * layoutSubviewsはsetNeedsLayoutあるいはlayoutIfNeededを使用して呼び出すこと。直ちに呼び出したい場合はlayoutIfNeededを呼び出すこと(リファレンスを呼んだ限りupdateConstraintsを直接呼び出してはいけないという記述はなかったが、updateConstraintsIfNeeded、setNeedsUpdateConstraintsというメソッドが用意されているので使った方が無難そう)。
 ****/
- (void)layoutSubviews {
    [super layoutSubviews];
 // override point. called by layoutIfNeeded automatically. As of iOS 6.0, when constraints-based layout is used the base implementation applies the constraints-based layout, otherwise it does nothing.
}

- (void)viewWillLayoutSubviews{
    [super viewWillLayoutSubviews];
}

- (void)viewDidLayoutSubviews{
    [super viewDidLayoutSubviews];
}

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    // Called when the view has been fully transitioned onto the screen. Default does nothing
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    // Called when the view is dismissed, covered or otherwise hidden. Default does nothing
}

- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    // Called after the view was dismissed, covered or otherwise hidden. Default does nothing

}

- (void)didReceiveMemoryWarning
{
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];
}

#pragma mark - Navigation

~~~

## 関連記事

---

【About】(http://qiita.com/sunstripe) - サンストライプ

---

## 制作チーム：サンストライプ

[![sunstripe_logo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80600/322f2d60-f19d-af9e-2b6f-7290ca546848.png)](http://sunstripe.main.jp/)
http://sunstripe.main.jp/

(月１ WEBコンテンツをリリースして便利な世の中を作っていくぞ！！ボランティアプログラマー/デザイナー/イラストレーター/その他クリエイター声優募集中!!)

緩募


### 地域情報 THEメディア
THE メディア 地域活性化をテーマに様々なリリース情報も含め、記事をお届けしてます！！
https://the.themedia.jp/

### ゼロからはじめる演劇ワークショップ
多様化の時代に向けて他者理解を鍛える

https://workshop.themedia.jp/

### プログラミングワークショップ・ウェブ塾の開講！！！
様々なテーマでプログラミングに囚われずに取り組んでいきます。
詳しくはこちら　↓　↓　↓　↓　↓　↓　↓　↓
[プログラミングサロン 月１だけのプログラミング学習塾](https://workshop.themedia.jp/posts/7057553?fbclid=IwAR32CfRQ7RvDOhvuogoSwqxDLMOU7Jvuzljlnx-TMc27qBPX1BnWsfLcBR8
)

### 協力応援 / 支援者の集い
## チーム：サンストライプ
https://twitter.com/sunstripe2011

#### プログラミングラボ
https://twitter.com/PLab2020

一緒にポートフォリオを作りませんか？現場の体験やそれぞれの立場から年齢関係なく作品を作りたい方々と一緒にチームを作って、作品を作っています。現場に行きたい人には、職場紹介や職場の体験や悩み相談なども受けております。
様々な職種からプログラミングの知識を得たい、デザインの知識を得たい、データーベースの知識を得たいという人が集まっております。
週１のミーティングにそれぞれの近況と作業報告して、たまにリモート飲み会などをしております！！

興味がある方は、DMに話しかけてみてください。

#### トラストヒューマン
http://trusthuman.co.jp/
私たちは何よりも信頼､人と考えてます｡

｢コンサルティング｣と｢クリエイティブ｣の両角度から｢人材戦略パートナー｣としてトータル的にサポートします！！

### キャリア教育事業

#### 青空プログラミング
[![青空プログラミング100px.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80600/603d53ab-828b-645e-a415-1b6f158d7356.png)](https://actcoin.jp/project/detail.php?id=600)

[![ダウンロード (9).jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80600/9bde9318-28c2-ce74-d4c5-326168061bcc.jpeg)](https://www.youtube.com/hashtag/%E9%9D%92%E7%A9%BA%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)

#### 広域学習支援プラットフォーム『のびのび日和』
https://slc-lab.amebaownd.com/

#スポンサー募集

## ネリム
https://nerim.co.jp/
配信事業などを映像コンテンツなどの制作しております

## ビヨンドXプロジェクト

[ビヨンドXプロジェクト全体会議](https://www.youtube.com/playlist?list=PLaR6-YWiGWkYhEHWnt8f1z-JC0g3nwwC9)